《CMake构建实战》 - 引入CMake
# CMake引入### 为什么使用CMake
从之前的介绍中可知Linux平台中的Makefile和Windows不能做到很好的兼容。而CMake很好的解决了跨平台问题。CMake能做到一次编写,到处编译
CMake是高效的,写CMakeLists.txt比写Makefile高效,能帮助开发者将精力都放在写代码上
CMake是强大的,支持在同一项目中使用多种开发环境和编译器,支持多种编程语言,适合团队开发,几乎是构建C和C++项目的业界标准工具
### 安装CMake
在Ubuntu中安装,我安装的版本是`3.28.3`
```bash
bruce@ubuntu:~$ sudo apt install cmake
bruce@ubuntu:~$ cmake --version
cmake version 3.28.3
CMake suite maintained and supported by Kitware (kitware.com/cmake).
```
### 基础语法
`CMakeLists.txt` 项目顶层目录下的CMake入口文件
`<script>.cmake` 指定`-P`参数执行脚本类型的CMake程序,这种CMake程序不会配置生成任何构建系统
`<module>.cmake` 模块,通过`include`等命令引用模块程序
CMake程序几乎完全由命令调用构成,命令不区分大小写,一般使用小写
新建 `005`,创建`cmake.cmake`
```cmake
message(hello, CMake!)
```
执行
```bash
bruce@ubuntu:~/Documents/study/cmake/005$ cmake -P cmake.cmake
hello,CMake!
```
#### 命令参数
* 引号参数(quoted argument)
* 非引号参数(unquoted argument)
* 括号参数(bracket argument)
##### 引号参数(quoted argument)
```cmake
message("CMake
您好!")
```
```bash
bruce@ubuntu:~/Documents/study/cmake/005$ cmake -P 1.cmake
CMake
您好!
```
可以看到双引号`""`包裹的参数会原样的显示出来
##### 非引号参数(unquoted argument)
```cmake
message("x;y;z")
message(x y z)
message(x;y;z)
```
执行`cmake -P 2.cmake`
```bash
bruce@ubuntu:~/Documents/study/cmake/005$ cmake -P 2.cmake
x;y;z
xyz
xyz
```
##### 变量引用(variable reference)
创建`3.cmake`
```cmake
set(var_a 您好)
set(var_b a)
message(${var_${var_b}})
```
执行 `cmake -P 3.cmake`
```bash
bruce@ubuntu:~/Documents/study/cmake/005$ cmake -P 3.cmake
您好
```
<div></div>
<p>果然是bruce.........这个蛮不错的咯。。。。。。。。。。。。。。。。<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/loveliness.gif" width="48" /></p>
<p>谢谢分享,期待后续</p>
<p>哈哈哈,我就什么都不说,打一个记号,看看大家都是怎么评论的。</p>
页:
[1]