CMake常用命令(二) project命令


语法

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命令用于指定cmake工程的名称,实际上,它还可以指定cmake工程的版本号(VERSION关键字)、简短的描述(DESCRIPTION关键字)、主页URL(HOMEPAGE_URL关键字)和编译工程使用的语言(LANGUAGES关键字)。

参数

  1. PROJECT_NAME:将当前工程的名称赋值给PROJECT_NAME,同时${PROJECT_NAME}变量赋值为PROJECT_NAME。
  2. VERSION:指定工程的版本号。
  3. DESCRIPTION:对工程的文本描述。
  4. HOMEPAGE_URL:指定工程的主页URL。
  5. LANGUAGES选项:选择构建工程需要的编程语言。

举例

假设当前系统的cmake版本为3.10.2

示例1 基础用法

project(pro_test)

当定义了project()后,一下cmake自带变量会自动赋值

  1. PROJECT_NAME:将当前工程的名称赋值给PROJECT_NAME,对于本例子,就是${PROJECT_NAME}=mytest。
  2. PROJECT_SOURCE_DIR:当前工程的源码路径。
  3. _SOURCE_DIR:指定工程的源码路径,这个变量和PROJECT_SOURCE_DIR的区别就是,_SOURCE_DIR跟具体的工程名字关联起来,若就是当前工程,则该变量和PROJECT_SOURCE_DIR相等。
  4. PROJECT_BINARY_DIR:当前工程的二进制路径。
  5. _BINARY_DIR:指定工程的二进制路径,这个变量和PROJECT_BINARY_DIR的区别就是,_BINARY_DIR跟具体的工程名字关联起来,若就是当前工程,则该变量和PROJECT_BINARY_DIR相等。
  6. CMAKE_PROJECT_NAME:顶层工程的名称。例如当前调用的CMakeLists.txt位于顶层目录(可以理解为使用cmake命令首次调用的那个CMakeLists.txt),那么工程名还会赋值给CMAKE_PROJECT_NAME。

示例2 VERSION用法

project (mytest VERSION 1.2.3.4)

除示例1 中的变量更改外,还会更改PROJECT_VERSION

示例3 DESCRIPTION用法

project (pro_test DESCRIPTION “This is my test project.)
以下变量会被赋值
**PROJECT_DESCRIPTION
<PROJECT-NAME>_DESCRIPTION
CMAKE_PROJECT_DESCRIPTION**

示例4 HOMEPAGE_URL用法

project (mytest HOMEPAGE_URL “https://www.XXX(示例).com”)
以下变量会被赋值
**PROJECT_HOMEPAGE_URL
<PROJECT-NAME>_HOMEPAGE_URL
CMAKE_PROJECT_HOMEPAGE_URL**

示例4 LANGUAGES用法

该选项可以有两种调用方式:一种是直接跟在工程名后面,可以省略LANGUAGES关键字;另一种是跟在其他关键字(例如VERSION)后面,LANGUAGES关键字不能省略。

project (pro_test “CXX”)

更多细节

  1. project命令并非必不可少,如果没有调用project命令,cmake仍然会生成一个默认的工程名“Project”,以及工程名对应的变量(例如PROJECT_NAME、CMAKE_PROJECT_NAME、PROJECT_SOURCE_DIR、<PROJECT_NAME>_SOURCE_DIR、PROJECT_BINARY_DIR、<PROJECT_NAME>_BINARY_DIR等)。但是VERSION、DESCRIPTION、HOMEPAGE_URL等选项对应的变量不会被赋值(LANGUAGES例外,即使不指定,默认语言为C和CXX)。
  2. project命令需要放置在其他命令调用之前,在cmake_minimum_required(参考https://www.jianshu.com/p/7535bff0e894
    )命令之后。
  3. 如果多次调用project命令,那么CMAKE_PROJECT_NAME、CMAKE_PROJECT_VERSION、CMAKE_PROJECT_DESCRIPTION、CMAKE_PROJECT_HOMEPAGE_URL等变量是以最近一次调用的project命令为准

参考

Cmake命令之project介绍

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖茄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值