CMake 示例工程代码
https://github.com/LABELNET/cmake-simple
1. 目录变量
CMake中经常使用的目录变量,可用于依赖环境配置和构建
CMAKE_SOURCE_DIR
,项目源码根路径CMAKE_BINARY_DIR
,项目源码构建路径,一般为build
文件夹路径CMAKE_CURRENT_SOURCE_DIR
,当前CMakeLists.txt
所在的源码路径CMAKE_CURRENT_BINARY_DIR
,当前CMakeLists.txt
所在的构建路径CMAKE_CURRENT_LIST_DIR
,当前CMakeLists.txt
的路径CMAKE_MODULE_PATH
,当前第三方模块cmake
文件夹路径
2. 示例
simple 项目目录结构为
$ simple
- build
- cmake
- demo
- include
- src
- CMakeLists.txt # 主模块
- CMakeLists.txt # 项目
添加变量信息打印代码
message(STATUS "1.CMAKE_SOURCE_DIR : ${CMAKE_SOURCE_DIR}")
message(STATUS "2.CMAKE_BINARY_DIR : ${CMAKE_BINARY_DIR}")
message(STATUS "3.CMAKE_CURRENT_SOURCE_DIR : ${CMAKE_CURRENT_SOURCE_DIR}")
message(STATUS "4.CMAKE_CURRENT_BINARY_DIR : ${CMAKE_CURRENT_BINARY_DIR}")
message(STATUS "5.CMAKE_CURRENT_LIST_DIR : ${CMAKE_CURRENT_LIST_DIR}")
message(STATUS "6.CMAKE_MODULE_PATH : ${CMAKE_MODULE_PATH}")
3.项目/CMakeLists.txt 输出
在 CMakeLists.txt 中添加目录变量,输出为
CMAKE_SOURCE_DIR
,可见项目根目录CMAKE_BINARY_DIR
,可见项目 build 目录
可根据目录变量进行相关配置
[cmake] -- 1.CMAKE_SOURCE_DIR : D:/project-cpp/cmake-simple/simple
[cmake] -- 2.CMAKE_BINARY_DIR : D:/project-cpp/cmake-simple/simple/build
[cmake] -- 3.CMAKE_CURRENT_SOURCE_DIR : D:/project-cpp/cmake-simple/simple
[cmake] -- 4.CMAKE_CURRENT_BINARY_DIR : D:/project-cpp/cmake-simple/simple/build
[cmake] -- 5.CMAKE_CURRENT_LIST_DIR : D:/project-cpp/cmake-simple/simple
[cmake] -- 6.CMAKE_MODULE_PATH : D:/project-cpp/cmake-simple/simple/cmake;
4.demo模块/CMakeLists.txt 输出
在 CMakeLists.txt 中添加目录变量,输出为
CMAKE_SOURCE_DIR
,可见也是项目根目录CMAKE_BINARY_DIR
,可见也是项目 build 目录CMAKE_CURRENT_SOURCE_DIR
为模块目录CMAKE_CURRENT_LIST_DIR
为 模块/CMakeLists.txt 所在目录
可根据目录变量进行相关配置
[cmake] -- 1.CMAKE_SOURCE_DIR : D:/project-cpp/cmake-simple/simple
[cmake] -- 2.CMAKE_BINARY_DIR : D:/project-cpp/cmake-simple/simple/build
[cmake] -- 3.CMAKE_CURRENT_SOURCE_DIR : D:/project-cpp/cmake-simple/simple/demo
[cmake] -- 4.CMAKE_CURRENT_BINARY_DIR : D:/project-cpp/cmake-simple/simple/build/demo
[cmake] -- 5.CMAKE_CURRENT_LIST_DIR : D:/project-cpp/cmake-simple/simple/demo
[cmake] -- 6.CMAKE_MODULE_PATH : D:/project-cpp/cmake-simple/simple/cmake;