cmake是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。
Cmake的所有语句都写在一个CMakeLists.txt的文件中,Cmake运行之后就会产生我们想要的makefile文件,然后再直接make就可以编译出可执行程序或者动态库。所以基本步骤就只有两步:(1)cmake生成MakeLists.txt文件;(2)make执行编译工作。
下面记录一下使用CMakeList的一些常用语句:
文章目录
- 1 cmake_minimum_required
- 2 SET
- 3 project
- 4 define_property
- 5 include
- 6 project
- 7 add_executable
- 8
1 cmake_minimum_required
作用:指定cmake最小版本
如下图所示:
指定cmake的最小版本为2.8.0
2 SET
作用一般有两个:
1、设置变量的值
2、定义宏
3 project
设置项目名称
4 define_property
功能:
定义和记录自定义属性。在作用域中定义一个用于set_property()和get_property()命令的属性。它主要用于定义属性的初始化或继承方式。
语法:
define_property(<GLOBAL | DIRECTORY | TARGET | SOURCE |
TEST | VARIABLE | CACHED_VARIABLE>
PROPERTY <name> [INHERITED]
[BRIEF_DOCS <brief-doc> [docs...]]
[FULL_DOCS <full-doc> [docs...]]
[INITIALIZE_FROM_VARIABLE <variable>])
主要参数说明:
第一个参数确定应在其中使用属性的范围类型。它必须是下列之一:
GLOBAL = associated with the global namespace
DIRECTORY = associated with one directory
TARGET = associated with one target
SOURCE = associated with one source file
TEST = associated with a test named with add_test
VARIABLE = documents a CMake language variable
CACHED_VARIABLE = documents a CMake cache variable
PROPERTY:属性关键字
<name>:要定义的属性名称
BRIEF_DOCS:关键字,表示简要文档
<brief-doc>:简要文档与属性关联的字符串
FULL_DOCS:关键字,表示完整文档
<full-doc>:完整文档与属性关联的字符串
示例:
# Use a global property to collect all application libraries
define_property(GLOBAL
PROPERTY app_libraries
BRIEF_DOCS "app libraries"
FULL_DOCS "app libraries" )
说明:为所有应用库设置全局属性“app_libraries”,关联字符串为“app libraries”
5 include
include指令用来载入并运行来自于文件或模块的CMake代码
6 project
设置项目名称
7 add_executable
使用指定的源文件来生成目标可执行文件