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/
相关推荐
Shadow(⊙o⊙)3 天前
CMake实现客户端、服务端交流
组件·cmake
繁重的秋春6 天前
Qt6.0下的CMake的部署配置
qt·cmake
Lee_jerome12 天前
《C/C++编译全家桶:g++四阶段、.a与.so区别、CMake构建、ARM交叉编译,这篇全讲透了》
c语言·开发语言·arm开发·c++·编译·cmake·cmakelists
开发者联盟league15 天前
cmake 创建和使用静态库(极简版)
c++·cmake·cpp
开发者联盟league18 天前
CMake 实战:创建并使用静态库(MinGW + clangd)
cmake·cpp
Javenwww19 天前
CMake入门——基本语法规则
cmake
郝学胜-神的一滴21 天前
中级OpenGL教程 023:Assimp模型加载全解——从源码到架构的骈文探秘
c++·unity·游戏引擎·cmake·unreal engine·opengl
橙色阳光五月天1 个月前
CMake 构建配置文件解析
c++·cmake·plugin
blueman88881 个月前
Qt5通过vcpkg中调用时,在debug模式下调试时总是调用release的plugins文件夹中的dll
c++·qt·cmake
郝学胜-神的一滴1 个月前
CMake 038:OBJECT目标复用编译+Linux动态库版本自动化管理
linux·c++·程序人生·软件工程·软件构建·cmake·工程配置