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/
相关推荐
瞎折腾啥啊3 天前
vcpkg与CMake
linux·c++·cmake·cmakelists
众少成多积小致巨3 天前
Cmake 入门指南
cmake
瞎折腾啥啊5 天前
现代 CMake 目标系统
c++·cmake·cmakelists
H Journey5 天前
常用知识总结C++、CMake、Linux
linux·c++·opencv·cmake
H Journey6 天前
Windows + VSCode + CMake 编译
windows·vscode·cmake
H Journey6 天前
CMakeLists.txt 基本用法实战
cmake·cmakelists
雪域迷影9 天前
Windows上使用VS2026和CMake编译LearnOpenGL项目源代码
windows·cmake·opengl·vs2026·gthub
瞎折腾啥啊12 天前
CMake FetchContent与ExternalProject
c++·cmake·cmakelists
JMchen12313 天前
集成第三方 C/C++ 库到 Android NDK 项目:OpenCV 与 FFmpeg 实战指南
opencv·ffmpeg·音视频开发·cmake·jni·ndk·abi 兼容性