- 如果要参与编译的 C/C++ 文件很多,难道每个都要手动添加嘛?
- 可以把编译好的可执行文件或者库自动放到指定位置嘛?
- 可以把编译好的库指定版本号嘛?
带着这些问题,还是要继续深入学习 CMake 的相关语法,最好的学习材料就是 官网文档 了。
为了避免直接看官方文档时一头雾水,这里列举一些常用的语法命令。
注释与大小写
在前面就已经用到了 CMake 注释了,每一行的开头 #
代表注释。
另外,CMake 的所有语法指令是不区分大小写的。
变量定义与消息打印
通过 set
来定义变量:
变量名为 var,值为 hello
set(var hello)
当需要引用变量时,在变量名外面加上 ${}
符合来引用变量。
引用 var 变量
${var}
还可以通过 message
在命令行中输出打印内容。
set(var hello)
message(${var})
数学和字符串操作
数学操作
CMake 中通过 math
来实现数学操作。
math 使用,EXPR 为大小
math(EXPR )
math(EXPR var “1+1”)
输出结果为 2
message(${var})
math 支持 +, -, *, /, %, |, &, ^, ~, <<, >>
等操作,和 C 语言中大致相同。
字符串操作
CMake 通过 string
来实现字符串的操作,这波操作有很多,包括将字符串全部大写、全部小写、求字符串长度、查找与替换等操作。
具体查看 官方文档。
set(var “this is string”)
set(sub “this”)
set(sub1 “that”)
字符串的查找,结果保存在 result 变量中
string(FIND ${var} ${sub1} result )
找到了输出 0 ,否则为 -1
message(${result})
将字符串全部大写
string(TOUPPER v a r r e s u l t )