CMAKE_INCLUDE_CURRENT_DIR 设置CMAKE_INCLUDE_CURRENT_DIR 的值为 ON,可以使项目包含 PROJECT_SOURCE_DIR 和 PROJECT_BINARY_DIR 两个目录。 包含PROJECT_SOURCE_DIR 路径,可以解决子目录下文件直接引入根目录下头文件。 包含PROJECT_BINARY_DIR 路径,可以解决生成在项目下的头文件,比如 QT 通过 UIC 生成的头文件。
1. Using $ENV{NAME} : 调用系统环境变量,我们也可以使用 "SET(ENV{NAME} value)". 需要注意的是这里"ENV"没有"$". 2. CMAKE_INCLUDE_CURRENT_DIR 等同于 INCLUDE_DIRECTORY(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) 五、其他的内置变量 BUILD_SHARED_LIBS: set the default value ...
CMAKE_CURRENT_LIST_LINE 输出变量所在的行 CMAKE_MODULE_PATH 设置自定义的cmake的模块所在的路径,如果工程比较复杂,会自己编写模块,这些模块可以通过cmake来找到只需要set命令即可:SET(CMAKE_MODULEPATH ${PROJECT_SOURCE_DIR}/cmake),然后代码中直接通过include就可以调用 EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PA...
CMAKE_INCLUDE_CURRENT_DIR :自动添加CMAKE_CURRENT_BINARY_DIR 和CMAKE_CURRENT_SOURCE_DIR 到当前处理的CMakeLists.txt PRIVATE: 将链接只用于当前目标,相当于.c包含,对外的.h不包含 INTERFACE: 将链接只用于依赖于当前目标的文件,当前目标不使用; 相当于.c不使用,对外的.h使用 PUBLIC:相当于PRIVATE + INTERFA...
在之前,我以为当include <...>,则编译器会去系统头文件搜索或者通过-isystem指定的路径;而include "..."则搜索-I指定的路径。 那么,如果我想找到include <Person.h>,则CMakeLists.txt文件中需要这么指定: INCLUDE_DIRECTORIES(SYSTEM${CMAKE_CURRENT_SOURCE_DIR}/include) ...
Hi. Line 86 of cmakelists is: include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}) However, it does not do what it is actually supposed to do. CMAKE_SOURCE_DIR is "The path to the top level of the source tree." While clea...
install(DIRECTORY include/ DESTINATION include/util) 1. 这个语句的意思是将include/目录安装到include/util目录 1.18 设置编译选项 设置编译选项可以通过add_compile_options命令,也可以通过set命令修改CMAKE_CXX_FLAGS或CMAKE_C_FLAGS。 方式1 set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -march=...
CMAKE_MINIMUM_REQUIRED(VERSION3.21)PROJECT(cef_app_macos_projectLANGUAGESCXX)# 基础配置SET(CMAKE_BUILD_TYPEDEBUG)SET(CMAKE_CXX_STANDARD17)SET(CMAKE_CXX_STANDARD_REQUIREDON)SET(CMAKE_INCLUDE_CURRENT_DIRON)#===CEF===if(NOTDEFINEDENV{CEF_ROOT})message(FATAL_ERROR"环境变量CEF_ROOT未定义!")endif...
add_subdirectory()和include()具有非常不同的特征,因此了解两者的优缺点是很重要的。 6.1 add_subdirectory() add_subdirectory()命令允许项目将另一个目录带入构建。该目录必须有自己的CMakeLists.txt文件,该文件将在add_subdirectory()被调用的地方进行处理,并在项目的构建树中为它创建一个相应的目录。
target_link_directories(mylib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/lib) ``` - 同样支持`PRIVATE`, `PUBLIC`, 和 `INTERFACE`来控制路径的可见性。 总结来说,`add_subdirectory`是关于项目结构和组织的,而其他四个命令则更多地关注构建过程中的文件包含和链接配置。`include_directories`和`link_directories`...