cmake_minimum_required(VERSION 3.10) # 设置CPP语言的标准 set(CMAKE_CXX_STANDARD 11) # 设置项目的名称、版本号、采用的语言 project(Hello VERSION 1.0 LANGUAGES CXX) # 查看项目的版本号 message(${PROJECT_VERSION} ${PROJECT_VERSION_MAJOR} ${PROJECT_VERSION_MINOR}) # 查看安装目录 message(${CMAKE_INSTALL_PREFIX}) set(CMD 101011) # option可选项开关命令/ ON , OFF # option的应用可以用来控制一些流程开启和关闭 # 可以在命令行使用 -D<变量名> OF/OFF 来指定变量的打开和关闭 option(DATE_ENABLE_ONE "output date_01" ON) if(DATE_ENABLE_ONE) set(DATE_ONE 20220725) endif() option(DATE_ENABLE_TWO "output date_02" OFF) if(DATE_ENABLE_TWO) set(DATE_TWO 20220726) endif() # 设置配置文件 configure_file(config.h.in config.h) # 设置cmake使用的编译器 set(CMAKE_CXX_COMPILER "D:/programs/mingw64/bin/c++.exe") # 设置存放二进制文件的输出目录 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) # 设置存放库文件的输出目录 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) message("开始构建源文件......") add_subdirectory(calc) # add_subdirectory(cal01) # 生成可执行文件 add_executable(hello main.cpp) # 指定所有目标的头文件路径 # 目录会被添加到当前文件的 INCLUDE_DIRECTORIES 属性中 # 当前文件的每一个目标文件的 INCLUDE_DIRECTORIES 属性也会添加该目录 # include_directories(${PROJECT_BINARY_DIR}) # 指定目标文件的头文件路径 target_include_directories(hello PUBLIC ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/calc/header ${PROJECT_SOURCE_DIR}/../lib) # 指定链接的库文件 # 同 include_directories link_libraries(addition) # 指定目标文件链接的库 # 同 target_include_directories # 链接的库可以是库名,或者绝对路径(必须保证文件存在) target_link_libraries(hello PUBLIC addition) target_link_libraries(hello PUBLIC subtract) target_link_libraries(hello PUBLIC F:/coder/code_excercise/cpp/cmake_syntax/syntax_demo_01/lib/libmultiply.a) target_link_libraries(hello PUBLIC F:/coder/code_excercise/cpp/cmake_syntax/syntax_demo_01/lib/libchu.dll) install(TARGETS hello DESTINATION bin) install(FILES ${PROJECT_BINARY_DIR}/config.h DESTINATION include) install(FILES "F:/coder/code_excercise/cpp/cmake_syntax/syntax_demo_01/lib/multiply.h" DESTINATION include) install(FILES "F:/coder/code_excercise/cpp/cmake_syntax/syntax_demo_01/lib/chu.h" DESTINATION include) install(FILES "F:/coder/code_excercise/cpp/cmake_syntax/syntax_demo_01/lib/libmultiply.a" DESTINATION lib) install(FILES "F:/coder/code_excercise/cpp/cmake_syntax/syntax_demo_01/lib/libchu.dll" DESTINATION bin)