Cmake

通过项目根目录下的CMakeList.txt文件进行配置。

基本结构:

1
2
3
cmake_minimum_required(VERSION 3.10)         //指定构建项目所需的最低CMake版本
project(Example)          //指定工程名字,输出的可执行文件(exe)以此为名
add_executable(Example main.app)      //含义为项目需要构建一个可执行文件,并且它由main.cpp这一文件编译而成

可选的结构:

  • 在计算机中查找已安装的第三方库

    find_package(packageName REQUIRED)      
    
  • 在全局查找指定文件名并添加到指定变量SRC_FILE

    此处使用通配符匹配,其中PROJECT_SOURCE_DIR是cmake提供的变量,表示当前项目的根目录

    ```cmake
    file(GLOB SRC_FILE
    "\({PROJECT_SOURCE_DIR}/src/*.h" "\)/src/.cpp"
    "\({PROJECT_SOURCE_DIR}/src/*.c" "\)/src/
    .cc"
    )

  • 链接第三方库

    target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE libName)
    

    共三个参数,分别为项目名、链接属性传播范围和库文件名,其中库文件名由第三方库在编译库时定义。

    连接属性参数范围共三个选项:

    • PRIVATE:私有,只有当前目标能用。任何链接到本项目的目标都不会看到这个库。
    • PUBLIC:公开,当前目标能用,且任何链接到本项目的目标也会自动链接这个库。
    • INTERFACE:接口,当前目标不用(不参与编译),但链接到本项目的目标必须链接这个库。通常用于纯头文件库。
  • 打开对c++17版本的支持

    target_compile_features(${CMAKE_PROJECT_NAME} PRIVATE cxx_std_17)
    
  • 自定义行为