CMake 基础语法
cmake 很简单,但绝对没有听起来或者想象中那么简单。cmake 编写的过程实际上是编程的过程,跟以前使用 autotools 一样,不过你需要编写的是 CMakeLists.txt(每个目录一个),使用的是 “cmake 语言和语法”。
cmake_minimum_required(VERSION 3.0)
project(HELLO VERSION 0.0.1)
add_executable(hello main.cpp)
target_link_libraries
CMake 语法规则
前面提到过,cmake 其实仍然要使用 “cmake 语言和语法” 去构建,上面的内容就是所谓的 “cmake 语言和语法” ,最简单的语法规则是:
-
变量使用
${}
方式取值,但是在 IF 控制语句中是直接使用变量名。 -
指令(参数 1 参数 2...)
参数使用括弧括起,参数之间使用空格或分号分开。 以上面的
ADD_EXECUTABLE
指令为例,如果存在另外一个 func.c 源文件,就要写成:ADD_EXECUTABLE(hello main.c func.c)
或者
ADD_EXECUTABLE(hello main.c;func.c)
-
指令是大小写无关的,参数和变量是大小写相关的。但,推荐你全部使用大写指令。
-
上面的 MESSAGE 指令我们已经用到了这条规则:
MESSAGE(STATUS "This is BINARY dir" ${HELLO_BINARY_DIR})
也可以写成:
MESSAGE(STATUS "This is BINARY dir ${HELLO_BINARY_DIR}")
这里需要特别解释的是作为工程名的 HELLO 和生成的可执行文 件 hello 是没有任何关系的。 hello 定义了可执行文件的文件名,你完全可以写成:
ADD_EXECUTABLE(t1 main.c)
编译后会生成一个 t1 可执行文件。