cmake
官方教程地址
https://modern-cmake-cn.github.io/Modern-CMake-zh_CN/chapters/intro/running.html
生成Makefile的工具。需要攥写的是CMakeLists.txt。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| add_executable(one two.cpp three.h) 生成一个one可执行文件 add_library(one STATIC two.cpp three.h) 生成一个库 STATIC,SHARED, 或者MODULE、BUILD_SHARED_LIBS target_include_directories(one PUBLIC include) 添加包含目录,public,任何链接到这个目标的库都必须包含这个目录,PRIVATE 只影响当前,不影响依赖。INTERFACE,之影响依赖。 target_link_libraries(another PUBLIC one) 指定目标another。 set(MY_VARIABLE "value") 声明本地变量 变量名全部大写 变量值跟在后面 声明后,只能在它的作用域内访问这个变量。可以在 变量声明末尾加PARENT_SCOPE来将它的作用域置定为当前的上一级作用域。
set(MY_CACHE_VARIABLE "VALUE" CACHE STRING "" FORCE) mark_as_advanced(MY_CACHE_VARIABLE) 将缓存的变量作为临时的全局变量
set(ENV{variable_name} value) 和 $ENV{variable_name} 设置/获取环境变量 CmakeCache.txt是缓存。当运行Cmake构建目录的时候会创建它。
set_property(TARGET TargetName PROPERTY CXX_STANDARD 11) 设置属性 get_property(ResultVariable TARGET TargetName PROPERTY CXX_STANDARD) 获取属性 if(variable) else() endif()
function() xxx endfunction()
记得在任何使用目标的地方都指定关键字PUBLIC PRIVATE INTERFACE,那么就不会有问题
|
debug命令
1 2
| --trace 选项能够打印出运行的 CMake 的每一行。 CMake 3.7 添加了 --trace-source="filename" 选项,这让你可以打印出你想看的特定文件运行时执行的每一行。
|