CMakeLists文件语法规范及指令解释
CMakeLists文件语法规范及指令解释

CMakeLists文件语法规范及指令解释

基本语法规则

  • CMake要求要求工程主目录和所有存放源代码子目录下都要编写CMakeLists.txt文件。
  • CMake变量使用${}方式取值,但是在IF控制语句中是直接使用变量名
  • 环境变量使用$ENV{}方式取值,使用SET(ENV{VAR} VALUE)赋值

举个例子

ADD_EXECUTABLE(hello main.c;armor.c)

或者

ADD_EXECUTABLE(hello main.c armor.c)

再比如if语句

if(NOT CMAKE_SYSTEM_NAME STREQUAL Linux)
    message(FATAL_ERROR "Not supported platform: ${CMAKE_SYSTEM_NAME}")
endif()

常见的指令解释

  • 指定cmake的最低版本为3.10.0
cmake_minimum_required(VERSION 3.10.0)
  • 指定工程采用的语言为 C++
project(WolfVision VERSION 2021.7.9 LANGUAGES CXX)
  • 去子目录查看可用的CMakeLists.txt文件
add_subdirectory(3rdparty/fmt)
  • 生成一个可执行文件 定义最终生成的可执行文件的文件名及参与编译的头文件和cpp文件
add_executable(WolfVision base/wolfvision.cpp)
  • 指定可执行文件的存放路径
set(EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin")
  • 指定库文件的存放路径
set(LIBRARY_OUTPUT_PATH "${PROJECT_BINARY_DIR}/lib")
  • 设置变量
set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-deprecated")  // 设置编译器类型
set(CMAKE_CXX_FLAGS_DEBUG "-g")                       // 生成调试信息
set(CMAKE_CXX_FLAGS_RELEASE "-O3")                    // 生成Release类型        

常用变量


发表评论

您的电子邮箱地址不会被公开。