PROJECT_BINARY_DIR PROJECT_BINARY_DIR变量则指的是CMake生成的构建文件所在的目录,也就是构建输出目录。这个目录通常包含了由CMake生成的构建文件、目标文件、库文件等。在构建过程中,CMake会根据PROJECT_BINARY_DIR来输出构建结果。 默认情况下,PROJECT_BINARY_DIR与PROJECT_SOURCE_DIR是同一个目录,也就是说构建文...
在CMake 中,PROJECT_SOURCE_DIR和CMAKE_SOURCE_DIR是两个非常重要的变量,它们都指向项目的源代码目录,但在多项目(子项目或多个 CMakeLists.txt 文件)的情况下,它们的值有所不同。 CMAKE_SOURCE_DIR 定义:CMAKE_SOURCE_DIR指向最顶层的 CMakeLists.txt 文件所在的目录,即整个项目的根目录。 用途:这个变量在...
在CMake中,PROJECT_SOURCE_DIR 和PROJECT_BINARY_DIR 是两个预定义的变量,它们会在调用project()命令时自动设置。你通常不需要手动设置这两个变量,因为CMake会为你处理。 PROJECT_SOURCE_DIR: 这个变量指向你的项目的源代码目录,即包含CMakeLists.txt文件的目录。 例如,如果你的CMakeLists.txt位于/home/user/my...
在 CMake 中,PROJECT_SOURCE_DIR和CMAKE_SOURCE_DIR是两个关键变量,都指向项目的源代码目录。然而,在处理多个项目(包括子项目或多个CMakeLists.txt文件)时,这两个变量的值会有所差异。例如,考虑以下项目结构:接着,在项目根目录下执行以下指令:通过终端输出的Message信息,我们可以观察到在整个...
${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt DEPENDS mytool in.txt ) add_custom_target(drive ALL DEPENDSout.txt) CMAKE_COMMAND: 指向cmake可执行程序的全路径。 CMAKE_CROSSCOMPILING: 当前CMake是否是交叉编译。 CMAKE_CTEST_COMMAND: 指向ctest可执行程序的全路径。
这样PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。也就是当前源码的目录。 如果执行cmake的时候,并不在源码的路径的话,比如 cmake ../src 这样的好处是cmake生成的文件和编译出来的东西,就不放在源码路径下了,保证了源码路径的干净整洁。 比如可以在src的同级目录下建立build目录。 然后在build目录下执行cmak...
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin) aux_source_directory(. ALL_SRCS) # 添加当前目录下所有的源文件 add_subdirectory(src) # 添加math子目录 add_executable(testCmake ${ALL_SRCS}) # 指定生成目标,注意这里要用${ALL_SRCS}!!!
有 * 区别。CMAKE_SOURCE_DIR确实指的是定义顶级CMakeLists.txt的文件夹。但是,PROJECT_SOURCE_DIR指...
PROJECT_SOURCE_DIR:当前工程的源码路径。 <PROJECT-NAME>_SOURCE_DIR:指定工程的源码路径,这个变量和PROJECT_SOURCE_DIR的区别就是,<PROJECT-NAME>_SOURCE_DIR跟具体的工程名字关联起来,若<PROJECT-NAME>就是当前工程,则该变量和PROJECT_SOURCE_DIR相等。
project命令并非必不可少,如果没有调用project命令,cmake仍然会生成一个默认的工程名“Project”,以及工程名对应的变量(例如PROJECT_NAME、CMAKE_PROJECT_NAME、PROJECT_SOURCE_DIR、_SOURCE_DIR、PROJECT_BINARY_DIR、_BINARY_DIR等)。但是VERSION、DESCRIPTION、HOMEPAGE_URL等选项对应的变量不会被赋值(LANGUAGES例外,即...