CMake注释
单行注释 #
多行 #[[ ]]#
CMake的变量定义
变量的声明
变量名大小写敏感
#声明变量
set(变量名 变量值)
set(var 123)
#移除变量
unset(var)
#使用变量 message命令用来打印
message("var = ${var}")
列表的声明
set(list 1 2 3 4 5)
set(list2 "1;2;3;4;5")
message("list2 = ${list2}")
CMake中的流程控制
运算符
优先级 为() > 1元 > 2元 > 逻辑
布尔常量
条件
if()
cmd
elseif()
cmd
else
cmd
endif
循环
while()
break()
continue()
endwhile()
循环遍历 1
foreach(item 1 2 3 4)
message("item = ${item}")
endforeach(item)
循环遍历 2
foreach(item RANG 4) #从0开始
message("item = ${item}")
endforeach(item)
循环遍历 3
foreach(item RANG 10 50 10) #从10开始到50 ,每次增加10
message("item = ${item}")
endforeach(item)
循环遍历 4 (列表)
set(list 1 2 3 4 5)
foreach(item IN LISTS list) #打印
message("item = ${item}")
endforeach(item)
CMake中的函数声明
function(func x y z)
message("ARGC=${ARGC}") #传入参数的个数
message("ARGV=${ARGV}") #参数列表
message("ARGV=${ARG1}") #第一个参数
endfunction(func)
fun(1 2 3)
自定义宏命令
macro(ma x y)
message("x = ${x}")
message("y = ${y}")
endmacro(ma)
ma("hello" "world")
作用域
- 全局层(CACHE变量) 在set进行变量定义时指定 CACHE
- 目录层
- 函数层