前言:
- cmake的内置命令是不区分大小写的
因此add_subdirectory
与ADD_SUBDIRECTORY
作用一致。 - cmake的所有变量都是区分大小写的
1、PROJECT_SOURCE_DIR 与 PROJECT_BINARY_DIR
cmake系统预定义变量: 指定工程路径
-
PROJECT_SOURCE_DIR
/CMAKE_SOURCE_DIR
/_SOURCE_DIR
: 为包含PROJECT()
命令的最近一个CMakeLists.txt
文件所在的文件夹路径。 -
PROJECT_BINARY_DIR
/CMAKE_BINARY_DIR
/_BINARY_DIR
: 运行cmake
命令的目录,即工程编译发生的路径。
参考资料:cmake中PROJECT_SOURCE_DIR的遐思
2、EXECUTABLE_OUTPUT_PATH 与 LIBRARY_OUTPUT_PATH
cmake系统预定义变量:
2.1、EXECUTABLE_OUTPUT_PATH: 指定最终的可执行文件的位置
例: 设置可执行文件输出路径
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
2.2、LIBRARY_OUTPUT_PATH: 设置库文件的输出目录
例: 设置库文件输出路径
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
以上两变量在新版本中已被`CMAKE_RUNTIME_OUTPUT_DIRECTORY`和`CMAKE_ARCHIVE_OUTPUT_DIRECTORY`代替
参考资料: CMake 设置Target输出目录和后缀名
3、CMAKE_EXPORT_COMPILE_COMMANDS
设置是否生成compile_commands.json
文件来记录编译过程
例:
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
默认不开启,开启后,生成的compile_commands.json
包含所有编译单元所执行的指令。可查看编译的具体文件。
参考资料:CMAKE:CMAKE_EXPORT_COMPILE_COMMANDS