前面我们已经提到了,使用${}进行变量的引用在 IF 等语句中,是直接使用变量名而不通过${}取值
在 cmake 生成 Makefile 的过程中,就会执行 ls 命令,如果返回 0,则说明成功执行,那么就輸出 ls *.c 的结果关于 IF 语句,后面的控制指令会提到。
小结: 本小节基本涵盖了常用的 cmake 指令,包括基本指令、查找指令、安装指令以及控制语句等,特別需要注意的是,在控制语句条件中使用变量,不能用${}引用,而是直接应用变量名
掌握了以上的各种控制指令,你应该完全可以通过 cmake 管理复杂的程序了,下一节,我
们将介绍一个比较复杂的例子,通过他来演示本章的一些指令,并介绍模块的概念。
九,复杂的例子:模块的使用和自定义模块 你現在还会觉得 cmake 简单吗?
本章我们将着重介绍系统预定义的 Find 模块的使用以及自己编写 Find 模块,系统中提供了其他各种模块,一般情况需要使用 INCLUDE 指令显式的调用,FIND_PACKAGE 指令是一个特例,可以直接调用预定义的模块.
其实使用纯粹依靠 cmake 本身提供的基本指令来管理工程是一件非常复杂的事情,所以,cmake 设计成叻可扩展的架构,可以通过编写一些通用的模块来扩展 cmake.
二,编写属于自己的 FindHello 模块 我们在此前的 t3 实例中,演示了构建动态库、静态库的过程并进荇了安装。
三,使用自定义的 FindHELLO 模块构建工程 仍然采用外部编译的方式,建立 build 目录,进入目录运行:
小结: 在本节中,我们学习了如何使用系统提供的 Find<NAME>模块并学习了自己编写