CMake的基本语法

1
2

cmake [options] <path-to-source>

其中,path-to-source是要编译的源代码路径。CMake的选项包括:

1
2
3
4
5
6
7
8

-D<var>=<value>:定义变量。

-G <generator>:指定生成器。

-B <build-dir>:指定生成的构建文件目录。

-S <source-dir>:指定源代码目录。

定义变量

可以使用-D选项定义变量,例如:

1
2

cmake -DVAR_NAME=VAR_VALUE <path-to-source>

也可以在CMakeLists.txt文件中使用set命令定义变量,例如:

1
2

set(VAR_NAME VAR_VALUE)

指定生成器

CMake支持多种生成器,例如Unix Makefiles、Ninja、Visual Studio等。可以使用-G选项指定生成器,例如:

1
2

cmake -G "Unix Makefiles" <path-to-source>

指定构建目录

使用-B选项可以指定生成的构建文件目录,例如:

1
2

cmake -B build <path-to-source>

指定源代码目录

使用-S选项可以指定源代码目录,例如:

1
2

cmake -S source <path-to-source>

添加源代码目录

在CMakeLists.txt文件中可以使用add_subdirectory命令添加源代码目录,例如:

1
2

add_subdirectory(subdir)

指定安装目录

可以使用CMAKE_INSTALL_PREFIX变量指定安装目录,例如:

1
2

cmake -DCMAKE_INSTALL_PREFIX=/usr <path-to-source>

也可以在CMakeLists.txt文件中使用install命令指定安装目录,例如:

1
2
3

install(TARGETS target DESTINATION bin)
install(FILES file DESTINATION share)

构建项目

在生成构建文件后,可以使用以下命令构建项目:

make:使用Unix Makefiles生成器时使用的命令。

ninja:使用Ninja生成器时使用的命令。

msbuild:使用Visual Studio生成器时使用的命令。
例如,在使用Unix Makefiles生成器时,可以使用以下命令构建项目:

1
2

make

安装项目

在构建项目后,可以使用以下命令安装项目:

1
2

make install

也可以在CMakeLists.txt文件中使用install命令指定安装目录,例如:

1
2
3

install(TARGETS target DESTINATION bin)
install(FILES file DESTINATION share)

这样就可以将生成的可执行文件和库文件安装到指定目录。