目录
1.CMake简介
-
CMake是一个项目构建工具 ,并且是跨平台的
-
问题 -- 解决
- 如果自己动手写Makefile,会发现,Makefile通常依赖于当前的编译平台,而且编写Makefile的工作量比较大,解决依赖关系时也容易出错
- 而CMake恰好能解决上述问题, 其允许开发者指定整个工程的编译流程,再根据编译平台,自动生成本地化的Makefile和工程文件 ,最后用户只需
make
编译即可
-
可以把CMake看成一款自动生成Makefile的工具 ,其编译流程如下图
-
CMake优点总结:
- 跨平台
- 能够管理大型项目
- 简化编译构建过程和编译过程
- 可扩展:可以为CMake编写特定功能的模块,扩充CMake功能
2.大小写?
- CMake支持大写、小写、混合大小写的命令
- 如果在编写
CMakeLists.txt
文件时使用的工具有对应的命令提示,那么大小写随缘即可,不用太过在意
3.注释
1.注释行
-
CMake使用
#
进行行注释 ,可以放在任何位置cmake# 这是一个CMakeLists.txt文件
2.注释块
-
CMake使用
#[[]]
进行块注释cmake#[[这是一个CMakeLists.txt文件 Die SnowK]]
4.日志
-
在CMake中可以用命令显示一条消息,该命令的名字为
message
-
语法 :
cmakemessage([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR] "message to display" ...)
-
状态参数 :
(无)
:重要消息STATUS
:非重要消息WARNING
:CMake警告,会继续执行AUTHOR_WARNING
:CMake警告(dev),会继续执行SEND_ERROR
:CMake错误,继续执行,但是会跳过生成的步骤FATAL_ERROR
:CMake错误,终止所有处理过程
-
显示区域
- CMake的命令行工具会在
stdout
上显示STATUS
消息,在stderr
上显示其他所有消息 - CMake的GUI会在它的log区域显示所有消息
- CMake的命令行工具会在
-
CMake警告和错误消息的文本显示使用的是一种简单的标记语言
- 文本没有缩进
- 超过长度的行会回卷
- 段落之间以新行做为分隔符
-
示例
cmake# 输出一般日志信息 message(STATUS "source path: ${PROJECT_SOURCE_DIR}") # 输出警告信息 message(WARNING "source path: ${PROJECT_SOURCE_DIR}") # 输出错误信息 message(FATAL_ERROR "source path: ${PROJECT_SOURCE_DIR}")