CMake基础命令
基础命令
- 设置CMake的最低版本要求
cmake_minimum_required(VERSION <min>[...<policy_max>] [FATAL_ERROR])
cmake_minimum_required(VERSION 3.15)
- 设置项目名称
project(<PROJECT-NAME> [<language-name>...])
设置后,项目名称存储在变量 PROJECT_NAME 中。当从顶层调用时, CMakeLists.txt还会将项目名称存储在CMAKE_PROJECT_NAME变量中,并且还会设置变量:
PROJECT_SOURCE_DIR, <PROJECT-NAME>_SOURCE_DIR
项目源目录的绝对路径。
PROJECT_BINARY_DIR, <PROJECT-NAME>_BINARY_DIR
项目二进制目录的绝对路径。
PROJECT_IS_TOP_LEVEL, <PROJECT-NAME>_IS_TOP_LEVEL
项目是否顶级的布尔值
project(<PROJECT-NAME>
[VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
[DESCRIPTION <project-description-string>]
[HOMEPAGE_URL <url-string>]
[LANGUAGES <language-name>...])
project(MyProject
VERSION 1.0.0
DESCRIPTION "A CMake Example Project"
HOMEPAGE_URL "https://www.example.com/myproject"
LANGUAGES CXX)
- 使用指定的源文件将可执行文件添加到项目中
add_executable(<name> [WIN32] [MACOSX_BUNDLE]
[EXCLUDE_FROM_ALL]
[source1] [source2 ...])
add_executable(Tutorial tutorial.cpp)
- 输出信息
message(STATUS "CXX Compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
- 常用变量
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- 常用函数
option(<variable> "help text" [value])
option(WITH_INTERNAL_TESTING "Build the internal testing version" ON)
添加库
- 添加普通库,构建 lib<name>.a 或 <name>.lib
add_library(<name> [STATIC | SHARED | MODULE]
[EXCLUDE_FROM_ALL]
[<source>...])
- 添加接口库
add_library(<name> INTERFACE)