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}")
  • 常用变量

CMAKE_<LANG>_COMPILER_ID 常用于

if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
  • 常用函数

option(<variable> "help text" [value])

option(WITH_INTERNAL_TESTING "Build the internal testing version" ON)

添加库

add_library()

  • 添加普通库,构建 lib<name>.a<name>.lib
add_library(<name> [STATIC | SHARED | MODULE]
            [EXCLUDE_FROM_ALL]
            [<source>...])
  • 添加接口库
add_library(<name> INTERFACE)

生成器表达式

文档:生成器表达式

安装和测试

文档:安装和测试

posted on 2023-08-31 17:22  IPlayGenji6  阅读(23)  评论(0编辑  收藏  举报