65 lines
1.6 KiB
CMake
65 lines
1.6 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
|
|
project(baidu_fanyi LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
if (MSVC)
|
|
add_compile_options(/utf-8)
|
|
add_compile_options(/EHsc)
|
|
add_definitions(-DWIN32_LEAN_AND_MEAN)
|
|
add_definitions(-D_WIN32_WINNT=0x0601)
|
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
endif()
|
|
|
|
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})
|
|
|
|
find_package(cxxLibrary CONFIG REQUIRED)
|
|
find_package(Xlnt CONFIG REQUIRED)
|
|
find_package(OpenSSL CONFIG REQUIRED)
|
|
find_package(Poco REQUIRED COMPONENTS
|
|
Foundation
|
|
Net
|
|
Util
|
|
JSON
|
|
NetSSL
|
|
)
|
|
|
|
set(SOURCES
|
|
bf.config.cpp bf.config.h
|
|
bf.request.cpp bf.request.h
|
|
bf.interface.cpp bf.interface.h
|
|
bf.util.cpp bf.util.h
|
|
bf.xlnt.cpp bf.xlnt.h
|
|
)
|
|
|
|
add_executable(baidu_fanyi main.cpp ${SOURCES})
|
|
add_executable(cli_test cli_test.cpp)
|
|
target_link_libraries(baidu_fanyi PRIVATE
|
|
xlnt::xlnt
|
|
OpenSSL::SSL
|
|
OpenSSL::Crypto
|
|
cxxLibrary::cxxLibrary
|
|
Poco::Foundation
|
|
Poco::Net
|
|
Poco::Util
|
|
Poco::JSON
|
|
Poco::NetSSL
|
|
)
|
|
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
|
|
# mingw64 编译的 xlnt 需要这个。
|
|
target_link_libraries(baidu_fanyi PRIVATE gcov)
|
|
endif()
|
|
target_link_libraries(cli_test PRIVATE cxxLibrary::cxxLibrary)
|
|
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${CMAKE_BINARY_DIR}/compile_commands.json
|
|
${CMAKE_SOURCE_DIR}/build/compile_commands.json
|
|
RESULT_VARIABLE copy_result
|
|
ERROR_QUIET
|
|
OUTPUT_QUIET
|
|
) |