《CMake构建实战》CMake常用命令
# CMake 常用命令CMake提供了很多命令,这些命令能够帮助我们在CMake程序中实现各种功能,包括对数值、字符串、列表、文件、路径的操作,生成文件、输出日志、指令命令行程序、引用模块、实现元编程、辅助调试等。
## 数值操作命令:math
CMake提供了math命令用于计算数学表达式。尽管这不如表达式语法那样简单直接,但鉴于构建过程中涉及数值计算的需求少之又少,使用math命令也算是在保持CMake语法单一性的前提下较为简单实用的一种方式了。
创建1.cmake
```cmake
cmake_minimum_required(VERSION 3.20)
math(EXPR a 10*10 OUTPUT_FORMAT DECIMAL)
message("a=${a}")
```
测试
```bash
$ cmake -P 1.cmake
a=100
```
## 字符串操作命令:string
### 搜索和替换
语法
```cmake
string(FIND <字符串> <子字符串> <结果变量> )
```
新建 `2.cmake`,搜索子字符串`a`
```cmake
string(FIND aba a res)
message("${res}")
```
从aba字符串搜索a,如果找到,返回字符串a所在的位置,上面的例子应该返回0,测试一下
```bash
$ cmake -P 2.cmake
0
```
### 替换字符串
语法
```cmake
string(REPLACE <匹配字符串> <替换字符串> <结果变量> <输入字符串>)
```
新建 `3.cmake`
```cmake
string(REPLACE a b res aba)
message("${res}")
```
将aba字符串中的a全部替换为b,上面的例子应该返回`bbb`,测试一下
```bash
$ cmake -P 3.cmake
bbb
```
### 取字符串长度
语法
```cmake
string(LENGTH <字符串> <结果变量>)
```
新建 `4.cmake`
```cmake
string(LENGTH aba res)
message("${res}")
```
计算字符串`aba`的长度,保存到`res`变量中,测试一下
```bash
$ cmake -P 4.cmake
3
```
## 列表操作指令list
### 列表长度
```cmake
list(LENGTH <列表变量> <结果变量>)
```
新建 `5.cmake`
```cmake
set(x a b c)
list(LENGTH x res )
message("${res}")
```
计算列表`x`的长度,保存到`res`变量中,测试一下
```bash
$ cmake -P 5.cmake
3
```
### 列表元素操作
```cmake
list(APPEND <列表变量> [<元素值>...])
```
在 `5.cmake` 基础上修改
```cmake
set(x a b c)
list(LENGTH x res )
message("${res}")
list(APPEND x d e f g)
message("${x}")
```
在列表`x`后面追加 `d e f g` 四个元素,测试结果如下
```bash
$ cmake -P 5.cmake
3
a;b;c;d;e;f;g
```
<p>CMake提供了math命令用于计算数学表达式,写法有什么不同吗</p>
秦天qintian0303 发表于 2024-11-2 23:08
CMake提供了math命令用于计算数学表达式,写法有什么不同吗
<p>我感觉平时使用CMake几乎用不到,可能是方便一些特殊场景吧</p>
页:
[1]