CMAKE_SOURCE_DIR是CMakeLists.txt所在的根目录,而CMAKE_BINARY_DIR是生成构建文件的根目录。它们的设置通常由CMake自动完成。 在CMakeLists.txt中,CMAKE_SOURCE_DIR会被自动设置为当前CMakeLists.txt所在的目录的绝对路径。这意味着无论CMakeLists.txt位于何处,CMAKE_SOURCE_DIR都会指向它所在的目录。 ...
Run Code Online (Sandbox Code Playgroud) 如您所见,-S 指定 CMAKE_SOURCE_DIR,-B 指定 CMAKE_BINARY_DIR。 配置构建的其他方法也遵循这个原则,但我认为 -S/-B 确实让事情变得清晰。 总结一下: 您是在配置/生成构建时设置 CMAKE_SOURCE_DIR 和 CMAKE_BINARY_DIR 的人。 编辑: 如果您需要我可以更深入。
在构建过程中,CMake会根据PROJECT_BINARY_DIR来输出构建结果。 默认情况下,PROJECT_BINARY_DIR与PROJECT_SOURCE_DIR是同一个目录,也就是说构建文件会被输出到源代码目录中。但是,为了保持源代码目录的整洁和避免构建过程中的临时文件污染源代码,通常我们会将PROJECT_BINARY_DIR设置为一个单独的目录,比如build目录。 区...
CMAKE_SOURCE_DIR是一个指向CMake配置开始时的项目源代码根目录的路径。这个变量通常用于定位项目源代码中的文件和目录。例如,如果你想在构建过程中复制一些文件到构建目录,你可以使用CMAKE_SOURCE_DIR来指定源文件的路径。 示例: add_custom_command( OUTPUT ${CMAKE_BINARY_DIR}/copied_file COMMAND ${CMAKE_CO...
ADD_SUBDIRECTORY(source_dir [binary_dir] [EXCLUDE_FROM_ALL] ) 这个指令用于向当前工程添加存放源文件的子目录。并可以指定中间二进制和目标二进制存放的位置。EXCLUDE_FROM_ALL参数的含义是将这个目录从编译过程中排除,比如,工程中的example,可能就需要工程构建完成后,再进入example目录单独进行构建(当然,你可以通...
1、PROJECT_SOURCE_DIR/CMAKE_SOURCE_DIR/_SOURCE_DIR:为包含PROJECT()命令的最近一个CMakeLists.txt文件所在的文件夹路径。 2、PROJECT_BINARY_DIR 运行cmake命令的目录,即工程编译发生的路径 例如: PROJEC
CMake的全称是Cross-platform Make。我第一次参与Linux C++开发时使用的工具是Make,而后开始切换到CMake,一开始以为CMake是和C语言有关,原来开头的C表示它可以跨平台。
CMAKE_CURRENT_SOURCE_DIR:当前处理的 CMakeLists.txt 所在的路径 CMAKE_CURRENT_BINARY_DIR:target 编译目录 CMAKE_CURRENT_LIST_DIR:CMakeLists.txt 的完整路径 EXECUTABLE_OUTPUT_PATH:重新定义目标二进制可执行文件的存放位置 LIBRARY_OUTPUT_PATH:重新定义目标链接库文件的存放位置 ...
binary_dir(可选):构建输出的目录,如果未指定,CMake 会使用 source_dir 作为构建目录。 EXCLUDE_FROM_ALL(可选):如果指定,该子目录的构建目标不会包含在 all 目标中,即默认情况下不会在调用 make 时构建。 后两项我们通常用不到可以忽略,在建立关系后,父节点的变量可以被子节点继承,执行cmake命令时,也会一...
CMake常见的变量在 CMake 中,有许多常见的变量可用于配置和管理构建过程。以下是一些常见的变量,包括当前源码路径: CMAKE_SOURCE_DIR:当前 CMakeLists.txt 所在的源码目录的根路径。CMAKE_BINARY_DIR:构建目…