CMAKE_CURRENT_LIST_DIR这个变量,它表示当前CMakeLists所在的路径.或者PROJECT_SOURCE_DIR,这个命令的原型是 代码语言:javascript 代码运行次数:0 运行 AI代码解释 命令: include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...]) 作用是把dir1, [dir2 …]这(些)个
常用的生成表达式有 BUILD_INTERFACE 和INSTALL_INTERFACE 生成表达式。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 target_include_directories( MyTarget PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> ) BUILD_INTERFACE 表达式包装的构建需求只被在同一个构建...
也不是指针),也就是说在一般情况下CMake函数中对变量的修改不会影响到函数外的CMake变量value值,而CMake函数中的变量就是从parent scope中“查询”到并生成的副本;(2)、CMake中变量的目录作用域,也是类似于C/C++中的include文件依赖
设置INTERFACE_INCLUDE_DIRECTORIES后, 在basiccache中都不需要find_package了 set( leveldb_INCLUDE_DIR"${CMAKE_CURRENT_SOURCE_DIR}/include")set( leveldb_INCLUDE_DIRS"${CMAKE_CURRENT_SOURCE_DIR}/include")ADD_LIBRARY(leveldb STATIC IMPORTED GLOBAL)set_property(TARGET leveldb PROPERTYINTERFACE_INCLUDE_DI...
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) 现在我们在CMakeLists.txt加入头文件搜索路径。 再次执行cmake与make命令。 程序编译成功。 4. CMake进阶 现在我们来学习使用cmake制作动态库与静态库 4.1 生成动静态库 生成静态库 生成静态库需要用到命令add_library语法: ...
对于modern cmake:首先会根据相对路径或环境变量来寻找相应的头文件、库文件等,然后生成伪目标(IMPORTED target),配置它的 INTERFACE 属性,从而可以被其它 target 直接调用,同时也会维护例如Abc_FOUND等基本的变量; 对于早期 CMake 的配置文件,则非常简单粗暴,将所有的信息通过Abc_FOUND、Abc_INCLUDE_DIRS、Abc_LIBRAR...
CMAKE_INCLUDE_CURRENT_DIR :自动添加CMAKE_CURRENT_BINARY_DIR 和CMAKE_CURRENT_SOURCE_DIR 到当前处理的CMakeLists.txt PRIVATE: 将链接只用于当前目标,相当于.c包含,对外的.h不包含 INTERFACE: 将链接只用于依赖于当前目标的文件,当前目标不使用; 相当于.c不使用,对外的.h使用 ...
记住,INTERFACE是指消费者需要但生产者不需要的东西。在MathFunctions/CMakeLists.txt末尾添加以下代码: target_include_directories(MathFunctions INTERFACE${CMAKE_CURRENT_SOURCE_DIR}) 至此,我们已经为MathFunctions库指定了使用要求,我们可以安全地从顶层CMakeLists.txt中如下位置删除EXTRA_INCLUDES变量: ...
"${CMAKE_CURRENT_SOURCE_DIR}/License.txt") set (CPACK_PACKAGE_VERSION_MAJOR "${Demo_VERSION_MAJOR}") set (CPACK_PACKAGE_VERSION_MINOR "${Demo_VERSION_MINOR}") include (CPack) include (InstallRequiredSystemLibraries):导入 InstallRequiredSystemLibraries 模块。
You'll see something like this in almost every package that supports installing: target_include_directories( MyTarget PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> ) 6.2. 宏和函数 function(SIMPLE REQUIRED_ARG) message(STATUS "Simple arguments: ${...