CMakeListsc常用路径详解

1. CMAKE_SOURCE_DIR

  • 含义:最顶层 CMakeLists.txt 所在的目录

  • 特点 :整个构建过程中永远不会改变

  • 指向 :运行 cmake 命令时指定的源代码目录

2. CMAKE_CURRENT_SOURCE_DIR

  • 含义当前正在处理的 CMakeLists.txt 所在的目录

  • 特点 :随着 CMake 递归处理子目录而动态变化

  • 指向:每个 CMakeLists.txt 文件自己的目录

3. PROJECT_SOURCE_DIR

  • 含义最近一次调用 project() 命令的 CMakeLists.txt 所在的目录

  • 特点 :每调用一次 project(),这个值就会改变

  • 指向:当前项目的根目录

4. CMAKE_CURRENT_LIST_DIR

  • 含义 :当前正在处理的 CMakeLists.txt 所在的目录(与 CMAKE_CURRENT_SOURCE_DIR 几乎相同)

  • 区别 :在 include()add_subdirectory() 时行为略有不同,但大多数情况下相同

复制代码
~/work/                         
├── app/                                ← CMAKE_SOURCE_DIR
│   ├── CMakeLists.txt                  # project(ui)  ← PROJECT_SOURCE_DIR
│   └── test/
│       └── CMakeLists.txt              # ← CMAKE_CURRENT_SOURCE_DIR
│   └── src/ 
│        └── CMakeLists.txt 
│   └── include/
相关推荐
郝学胜-神的一滴7 天前
CMake 010 :一步到位链接静态库
开发语言·c++·qt·程序人生·系统架构·cmake
草莓熊Lotso8 天前
【CMake】 工程实战:可执行文件从编译、链接到安装全流程深度拆解
linux·运维·服务器·网络·c++·cmake
明月_清风12 天前
Makefile 完全指南:从入门到 CMake 工程化实践
后端·cmake
yuanyuan2o213 天前
从最小项目开始的 CMake 教程
c语言·开发语言·arm开发·c++·makefile·make·cmake
瞎折腾啥啊17 天前
VCPKG详细使用教程
linux·c++·cmake·cmakelists
郝学胜-神的一滴20 天前
跨平台动态库与头文件:从原理到命名的深度解析
linux·c++·程序人生·unix·cmake
瞎折腾啥啊23 天前
vcpkg与CMake
linux·c++·cmake·cmakelists
众少成多积小致巨24 天前
Cmake 入门指南
cmake
瞎折腾啥啊25 天前
现代 CMake 目标系统
c++·cmake·cmakelists