CMake是一个跨平台的构建工具,它可以自动生成Makefile或者项目文件,从而方便地管理和构建项目。
-
cmake_minimum_required(VERSION x.y.z)这个命令指定了最低CMake版本的要求。如果当前的CMake版本低于指定版本,则会报错退出。
-
project(project_name [CXX] [C] [Java])这个命令定义了一个项目的名称,可以在构建和安装过程中使用。
-
add_executable(executable_name source_file1 [source_file2 ...])这个命令用来添加可执行文件。后面跟着的是可执行文件的名称和源代码文件的列表。例如:add_executable(hello_world main.cpp)
-
add_library(library_name STATIC/SHARED source_file1 [source_file2 ...])这个命令用来添加静态或动态库。后面跟着的是库的名称、库的类型(STATIC或SHARED)和源代码文件的列表。例如:add_library(my_lib STATIC lib.cpp)
-
target_link_libraries(target_name lib1 [lib2 ...])这个命令用来链接目标文件和库文件。后面跟着的是目标文件的名称和需要链接的库文件的列表。例如:target_link_libraries(my_prog my_lib)
-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")这个命令用来设置编译器选项。例如,设置编译器标志为-Wall。这个命令还可以用来设置其他的选项,如编译器路径、编译器版本等等。
-
include_directories(directory1 [directory2 ...])这个命令用来添加头文件搜索路径。后面跟着的是需要添加的目录列表。例如:include_directories(include)
-
link_directories(directory1 [directory2 ...])这个命令用来添加库文件搜索路径。后面跟着的是需要添加的目录列表。例如:link_directories(lib)
-
add_definitions(-DDEBUG)这个命令用来定义预处理器变量。例如,定义DEBUG变量。这个命令还可以用来设置其他的预处理器选项,如宏定义、条件编译等等。
-
install(TARGETS target_name DESTINATION directory)这个命令用来安装目标文件和库文件。后面跟着的是目标文件的名称和安装目录。例如:install(TARGETS my_prog DESTINATION bin)
-
install(FILES file1 [file2 ...] DESTINATION directory)这个命令用来安装文件。后面跟着的是需要安装的文件列表和安装目录。例如:install(FILES readme.txt DESTINATION doc)