CMake之建立简单工程

最简单的例子

完整代码

目录结构

.
├── CMakeLists.txt
└── main.cpp

main.cpp

#include <iostream>
int main()
{
    
    
    std::cout <<"Hello World" << std::endl;
    return 0;
}

CMakeLists.txt

PROJECT (SimpleExample)
SET(SRC_LIST main.cpp)
MESSAGE(STATUS "This is BINARY dir "${
    
    PRACTISE1_BINARY_DIR})
MESSAGE(STATUS "This is BINARY dir "${
    
    PROJECT_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir "${
    
    PRACTISE1_SOURCE_DIR})
MESSAGE(STATUS "This is SOURCE dir "${
    
    PROJECT_SOURCE_DIR})
ADD_EXECUTABLE(example ${
    
    SRC_LIST})

语法介绍

大小写

CMAKE语法中的指令关键字不分大小写,但是传入的参数是分大小写的, 如果传入的参数是列表可以用空格或者分号隔开, 参数也可以使用双引号传入(处理带有空格字符的参数的时候很有用)

PROJECT

PROJECT用来设置工程名字,可以与后面ADD_EXECUTABLE中的目标文件名不一样。

SET

SET用来定义一个变量,如果定义的是列表可以用空格或者分号隔开,定义的变量可以在后面用${变量名}来进行取值。

MESSAGE

MESSAGE用来打印日志,分别有SEND_ERROR | STATUS | FATAL_ERROR三中类型,其中FATAL_ERROR会让构建程序终止。

General messages
  message([<mode>] "message text" ...)

Reporting checks
  message(<checkState> "message text" ...)

ADD_EXECUTABLE

ADD_EXECUTABLE根据设置生成指定的可执行文件。

常用变量

使用${
    
    }进行变量的引用。在 IF 等语句中,是直接使用变量名而不通过${
    
    }取值。
默认变量${
    
    PROJECT_BINARY_DIR}指的是目标make文件的生成目录。
默认变量${
    
    PROJECT_SOURCE_DIR}指的是工程CMakeLists.txt所在目录。
<工程名>_BINARY_DIR和<工程名>_SOURCE_DIR是 PROJECT 指令隐式定义的两个变量, 等同于PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR,一般推荐使用后面这两个,因为工程名会变动。
cmake之后如果运行make命令会发现目标文件生成在${
    
    PROJECT_BINARY_DIR}

猜你喜欢

转载自blog.csdn.net/webzhuce/article/details/115412801