cmake 指令说明
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmake 指令说明相关的知识,希望对你有一定的参考价值。
1. 语法规则
- 变量使用$方式取值,但是在 IF 控制语句中是直接使用变量名
- 指令(参数 1 参数 2…)
- 参数使用括弧括起,参数之间使用空格或分号分开。
eg. 以 ADD_EXECUTABLE 为例,如果存在另外一个 func.c 源文件,可写成:
ADD_EXECUTABLE(hello main.c func.c)或者
ADD_EXECUTABLE(hello main.c;func.c) - 指令是大小写无关的,参数和变量是大小写相关的
1.1 项目名称PROJECT()
这个指令隐式的定义了两个 cmake 变量:
_BINARY_DIR 以及_SOURCE_DIR,
PROJECT_BINARY_DIR 和 PROJECT_SOURCE_DIR变量,他们的值分别跟 HELLO_BINARY_DIR 与 HELLO_SOURCE_DIR 一致
eg.
PROJECT(HELLO) #项目名称
会引入两个变量:
HELLO_BINARY_DIR, HELLO_SOURCE_DIR
同时也会定义两个等价的变量:
PROJECT_BINARY_DIR, PROJECT_SOURCE_DIR
因为采用的是内部编译,两个变量目前指的都是工程所在路径/backup/cmake/t1,
1.2. 加入文件 AUX_SOURCE_DIRECTORY()
eg.
#把当前目录(.)下所有源代码文件和头文件加入变量SRC_LIST
AUX_SOURCE_DIRECTORY(. SRC_LIST)
1.3. set 指令用来显式定义变量
SET 指令的语法是:
SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])
现阶段,你只需要了解 SET。
eg. 我们用到的是 SET(SRC_LIST main.c),如果有多个源文件,也可以定义成:
SET(SRC_LIST main.c t1.c t2.c)
1.4. message
MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display”…)
这个指令用于向终端输出用户定义的信息,包含了三种类型:
- SEND_ERROR 产生错误,生成过程被跳过。
- SATUS 输出前缀为—的信息
- FATAL_ERROR 立即终止所有 cmake 过程
以上是关于cmake 指令说明的主要内容,如果未能解决你的问题,请参考以下文章