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 指令说明的主要内容,如果未能解决你的问题,请参考以下文章

cmake install() 行为?如果给出此指令,为啥二进制会在 PWD 中查找

CMake--常用指令

cmake指令详解

Shader HLSL片段说明

这些角度电子邮件指令代码片段如何连接

使用 cmake 来搭建跨平台的应用程序框架:C++版本