路径相关
在 CMake 中,有一些常见的预定义变量,它们提供了有关项目、目录结构和构建环境的信息。这些变量可用于设置路径、传递参数、以及进行其他与构建过程相关的操作。
以下是一些常见的 CMake 变量:
-
CMAKE_SOURCE_DIR:
- 描述:项目顶层目录的绝对路径。
- 使用示例:
${CMAKE_SOURCE_DIR}/src
-
CMAKE_BINARY_DIR:
- 描述:构建目录的绝对路径。
- 使用示例:${CMAKE_BINARY_DIR}/bin
CMAKE_BINARY_DIR
是 CMake 中的一个预定义变量,表示当前项目的二进制(构建)目录的绝对路径。 这个变量用于指定构建目标文件的位置。
-
CMAKE_CURRENT_SOURCE_DIR:
- 描述:当前处理的 CMakeLists.txt 文件所在的目录的绝对路径。
- 使用示例:
${CMAKE_CURRENT_SOURCE_DIR}/src
-
CMAKE_CURRENT_BINARY_DIR:
- 描述:当前处理的 CMakeLists.txt 文件的构建目录的绝对路径。
- 使用示例:
${CMAKE_CURRENT_BINARY_DIR}/bin
-
CMAKE_INCLUDE_CURRENT_DIR:
- 描述:将当前源文件目录添加到
include_directories()
中。 - 使用示例:
include_directories(${CMAKE_INCLUDE_CURRENT_DIR})
- 描述:将当前源文件目录添加到
-
CMAKE_MODULE_PATH:
- 描述:包含额外的 CMake 模块的目录。
- 使用示例:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
-
CMAKE_LIBRARY_OUTPUT_DIRECTORY:
- 描述:动态链接库的输出目录。
- 使用示例:
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
-
CMAKE_ARCHIVE_OUTPUT_DIRECTORY:
- 描述:静态库的输出目录。
- 使用示例:
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
-
CMAKE_RUNTIME_OUTPUT_DIRECTORY:
- 描述:可执行文件的输出目录。
- 使用示例:
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
- CMAKE_CXX_COMPILER_ID:
- 描述:C++ 编译器的标识符。
- 使用示例:
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
其它
${CMAKE_PROJECT_NAME}
${CMAKE_PROJECT_NAME}
是在CMake中预定义的一个变量,它表示当前CMake项目的名称。在CMakeLists.txt文件中使用 project()
命令时,该变量会被自动设置为项目的名称。
在你的CMake项目中,如果你有如下的语句:
project(MyProject)
那么,${CMAKE_PROJECT_NAME}
的值就是 “MyProject”。
在CMake中,使用变量可以方便地引用项目的不同属性,比如名称、版本号等。在这个特定的情境中,${CMAKE_PROJECT_NAME}
用于获取项目的名称,以便在构建过程中动态地引用项目的名称。
例如,你可能会在设置输出目录、构建目标或生成文件名时使用 ${CMAKE_PROJECT_NAME}
。这样,你的CMake配置可以更加灵活,不需要在多个地方硬编码项目的名称。
CMake variables官方文档
可以在 CMake 官方文档中找到更多的信息:CMake - Variables。