• cmake学习之-project


    一、系统版本

    • cmake version: 3.5.2
    • 系统版本: Ubuntun 16.04
    • cmake docment: 3.14.4
    • 最后更新: 2019-05-31

    二、指令说明

    project(<PROJECT-NAME> [<language-name>...])
    
    project(<PROJECT-NAME>
            [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
            [DESCRIPTION <project-description-string>]
            [HOMEPAGE_URL <url-string>]
            [LANGUAGES <language-name>...])
    

    project 主要用于提供项目的名称、版本、使用编译语言等信息

    注意:
    - 在当前系统版本下面,实际上 Project 并不支持 document 提供的 DESCRIPTIONHOMEPAGE_URL
    - project 必须放在最上面, 且不能通过 include来包含

    2.1 参数解析

    1. PROJECT-NAME:必选

      • 项目名称,配置好值后,会存在 CMAKE_PROJECT_NAME 变量中
    2. VERSION:可选

      • 版本号,主要分为 major(主版本号)、minor(次版本号)、patch(补丁版本号)、tweak, 格式为: 10.2.1.3
      • 设置对应的值后,会依次解析,存在各自对应的变量里面

      以 10.2.1.3 为例

      名称 变量名
      major(主版本号) PROJECT_VERSION_MAJOR 10
      minor(次版本号) PROJECT_VERSION_MINOR 2
      patch(补丁版本号) PROJECT_VERSION_PATCH 1
      tweak PROJECT_VERSION_TWEAK 3
      VERSION CMAKE_PROJECT_NAME 10.2.1.3
    3. LANGUAGES: 可选,如果未配置,默认使用 C 以及 CXX

      • 注意: 如果使用ASM(汇编),需要放在最后面

    三、Coding

    文件目录结构如下:

    rs:cmake-project$ tree
    .
    ├── CMakeLists.txt
    ├── main.cpp
    └── make.sh
    
    

    CMakeLists.txt 文件内容:

    
    cmake_minimum_required(VERSION 3.5)
    
    project(DEMO VERSION 10.2.1.3 LANGUAGES CXX C ASM )
    
    
    message("CMAKE_PROJECT_NAME = ${CMAKE_PROJECT_NAME}")
    message("PROJECT_VERSION = ${PROJECT_VERSION}")
    message("PROJECT_VERSION_MAJOR    = ${PROJECT_VERSION_MAJOR}")
    message("PROJECT_VERSION_MINOR = ${PROJECT_VERSION_MINOR}")
    message("PROJECT_VERSION_PATCH = ${PROJECT_VERSION_PATCH}")
    message("PROJECT_VERSION_TWEAK = ${PROJECT_VERSION_TWEAK}")
    
    
    add_executable(DEMO main.cpp)
    
    
    

    **main.cpp ** 文件内容

    
    #include <iostream>
    
    using namespace std;
    
    int main(int argv, const char *argc[])
    {  
        cout << "hello world" << endl;
        return 0;
    }
    
    
    

    make.sh 保存一些指令(这个非必须)

    #!/bin/sh
    rm -rf CMakeFiles
    cmake ./
    make
    ./DEMO
    
    

    3.1 运行 sh make.sh

    • 终端显示:
    
    .....
    
    CMAKE_PROJECT_NAME = DEMO
    PROJECT_VERSION = 10.2.1.3
    PROJECT_VERSION_MAJOR    = 10
    PROJECT_VERSION_MINOR = 2
    PROJECT_VERSION_PATCH = 1
    PROJECT_VERSION_TWEAK = 3
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/rs/Documents/study/cmake-project
    Scanning dependencies of target DEMO
    [ 50%] Building CXX object CMakeFiles/DEMO.dir/main.cpp.o
    [100%] Linking CXX executable DEMO
    [100%] Built target DEMO
    hello world
    rs:cmake-project$ 
    
    

    四、参考链接

    https://cmake.org/cmake/help/latest/command/project.html

    五、 遗留问题

    DESCRIPTION 以及 HOMEPAGE_URL 暂时不支持,不知道使用!

  • 相关阅读:
    安装wampserver2时出现的问题
    微信相关信息
    YII CDbCriteria总结
    discuz@功能的代码
    音乐搜索并生成播放功能
    php生成json和js解析json
    Discuz!提取文章标签
    ⑦ vue项目结构study
    ⑤ elementui 使用字符填充table空白表格项
    ④ keep-alive缓存组件,操作之后需要重新获取数据--activated
  • 原文地址:https://www.cnblogs.com/gaox97329498/p/10957786.html
Copyright © 2020-2023  润新知