CMake Overview

来源:互联网 发布:淘宝买港版ipad 编辑:程序博客网 时间:2024/06/05 02:37

Reference

  • CMake Tutorial

CMakeList.txt

对于每个project,需要在目录里有一个CMakeList.txt文件。

Command

这个文件由一系列的命令组成,每个命令的形式为:

command(args...)

command是命令的名字,不区分大小写;args是命令的参数,而各个参数以空格分割。——如果参数中包括空格,则用双引号括起来。

按照这些命令在txt中出现的顺序执行。

变量

变量可以是字符串,也可以是字符串列表。

语法:

${VAR}

如果变量的值是多个参数,则用set命令。比如下面的命令就是把 a b c 赋值给Foo这个变量:

set(Foo a b c)

此时,command(${Foo}) 就等价于 command(a b c)。

如果要作为一个参数传递,则需要添加双引号。如:command(“${Foo}”) 就等价于 command(“a b c”)。

环境变量

CMake可以直接引用环境变量:$ENV{VAR}

Hello World

一个c文件,生成可执行文件

project(Hello)add_executable(Hello Hello.c)

如果要有多个c文件生成可执行文件,则如下:

add_executable(Hello Hello.c File2.c File3.c File4.c)

注释

“#”开头的一样视为注释。

运行CMake

需要两个目录:

  • 源代码目录:源代码,以及CMakeList.txt
  • binary目录:放生成的目标文件、库文件,以及可执行文件。

通常情况下,CMake不会写任何文件到源代码目录中,而是生成在binary目录中。——当然,也可以把这两个目录设置为同一个目录,即为insource build。对应的就是out-of-source build。

in source build

直接cd到源代码目录,并运行:

cmake .

out-of-source build

在binary目录下面,执行cmake命令,比如:

cmake ../src

cmake

$ cmake --helpUsage  cmake [options] <path-to-source>  cmake [options] <path-to-existing-build>Specify a source directory to (re-)generate a build system for it in thecurrent working directory.  Specify an existing build directory tore-generate its build system.

静态库&可执行文件

project(sha1test)add_library(sha1 STATIC sha1/sha1.c)add_executable(sha1test main.cpp)target_link_libraries(sha1test sha1)
0 0
原创粉丝点击