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_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/) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/) find_package(CURL CONFIG REQUIRED) find_package(OpenSSL CONFIG REQUIRED) find_package(Xlnt CONFIG REQUIRED) find_package(nlohmann_json CONFIG REQUIRED) find_package(CLI11 CONFIG REQUIRED) find_package(spdlog CONFIG REQUIRED) find_package(fmt CONFIG REQUIRED) 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 CURL::libcurl nlohmann_json::nlohmann_json CLI11::CLI11 spdlog::spdlog fmt::fmt ) target_link_libraries(cli_test PRIVATE CLI11::CLI11) 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 )