https://modern-cmake-cn.github.io/Modern-CMake-zh_CN/chapters/basics/example.html
变量与缓存
# 本地变量
set(MY_VARIABLE "value") # 声明便令
set(MY_LIST "one" "two") # 声明列表
set(MY_LIST "one;two")
# 缓存变量
#在 CMake 中,如果一个变量被标记为「缓存」,则 cmake 的时候会将其写入到 #CMakeCache.txt 文件中。当 cmake 命令寻找变量时,它会首先去 CMakeCache.txt 文件中寻找。
set(MY_CACHE_VARIABLE "VALUE" CACHE STRING "Description") # 不会覆盖已存在的变量
set(MY_CACHE_VARIABLE "VALUE" CACHE STRING "Description" FORCE) # 会覆盖已存在的变量
# 命令行参数变量
option(MY_OPTION "This is settable from the command line" OFF) # 此处假定 MY_OPTION 为 bool 值
# 环境变量
set(ENV{variable_name} value) # 设定环境便令
$ENV{variable_name} # 获取环境变量
# https://blog.csdn.net/fengyuyeguirenenen/article/details/129332955
CMake内置变量与系统变量对应关系
-------
变量名称 | CMake变量 | 系统变量
--------|----------|----
C编译器| CMAKE_C_COMPILER | CC
C++编译器 | CMAKE_CXX_COMPILER | CXX
生成器 |-G "*******" |CMAKE_GENERATOR(CMAKE 3.15+才支持)
C编译选项 | CMAKE_C_FLAGS | CFLAGS
C++编译选项 | CMAKE_CXX_FLAGS | CXXFLAGS
# 属性
set_property(TARGET TargetName
PROPERTY CXX_STANDARD 11) # 设置属性
set_target_properties(TargetName PROPERTIES
CXX_STANDARD 11) # 设置属性
get_property(ResultVariable TARGET TargetName PROPERTY CXX_STANDARD) # 获取属性
# 缓存