PROJECT_SOURCE_DIR 和 CMAKE_SOURCE_DIR对比在 CMake 中, PROJECT_SOURCE_DIR和CMAKE_SOURCE_DIR是两个非常重要的变量,它们都指向项目的源代码目录,但在多项目(子项目或多个 CMakeLists.txt 文件)的情况下,…
在CMake 中,PROJECT_SOURCE_DIR和CMAKE_SOURCE_DIR是两个非常重要的变量,它们都指向项目的源代码目录,但在多项目(子项目或多个 CMakeLists.txt 文件)的情况下,它们的值有所不同。 CMAKE_SOURCE_DIR 定义:CMAKE_SOURCE_DIR指向最顶层的 CMakeLists.txt 文件所在的目录,即整个项目的根目录。 用途:这个变量在...
在 CMake 中,PROJECT_SOURCE_DIR和CMAKE_SOURCE_DIR是两个关键变量,都指向项目的源代码目录。然而,在处理多个项目(包括子项目或多个CMakeLists.txt文件)时,这两个变量的值会有所差异。例如,考虑以下项目结构:接着,在项目根目录下执行以下指令:通过终端输出的Message信息,我们可以观察到在整个...
变量CMAKE_CURRENT_SOURCE_DIR和CMAKE_CURRENT_LIST_DIR可以指代由具有include命令的不同文件包括的CMake列表文件的不同目录.例如,如果目录项目中存在CMakeLists.txt并且包含以下指令 include(src/CMakeLists.txt) 然后在处理src/CMakeLists.txt时,CMAKE_CURRENT_LIST_DIR将引用project / src,而CMAKE_CURRENT_SOURCE...
CMAKE_CURRENT_SOURCE_DIR: 当前处理的源码路径。 CMAKE_DL_LIBS: 包含dlopen和dlclose的库的名称。 CMAKE_EDIT_COMMAND: cmake-gui或ccmake的全路径。 CMAKE_EXECUTABLE_SUFFIX: 该平台上可执行程序的后缀。 CMAKE_EXTRA_GENERATOR: 额外的用于构建工程的产生器。当使用Eclispse, CodeBlocks或KDevelop产生器时,...
PROJECT_SOURCE_DIR变量指的是CMakeLists.txt文件所在的目录,也就是项目的源代码目录。在构建过程中,这个目录通常包含了项目的所有源代码文件、头文件、资源文件等。CMake会根据这个目录来查找和处理项目中的源文件,生成相应的构建文件(如Makefile、Ninja文件等)。 举个例子,假设你有一个名为my_project的目录,这个...
PROJECT_SOURCE_DIR 跟其他指令稍有区别,现在,你可以理解为他们是一致的。3,CMAKE_CURRENT_SOURCE_DIR 指的是当前处理的 CMakeLists.txt 所在的路径,比如上面我们提到的 src 子目录。4,CMAKE_CURRRENT_BINARY_DIR 如果是 in-source 编译,它跟 CMAKE_CURRENT_SOURCE_DIR 一致,如果是 out-of-source...
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include> $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src/logger> $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src/logger> ) target_link_libraries(${tgt}...
这样PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。也就是当前源码的目录。 如果执行cmake的时候,并不在源码的路径的话,比如 cmake ../src 这样的好处是cmake生成的文件和编译出来的东西,就不放在源码路径下了,保证了源码路径的干净整洁。 比如可以在src的同级目录下建立build目录。
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}!!!