菜鸟笔记
提升您的技术认知

cmake project-ag真人游戏

  1. cmakelists.txt 文件名严格区分大小写
  2. cmake指令可以不区分大小写,大小写混写都行,每条语句不需要加分号;
  3. 参数严格区分大小写,名称只能用字母、数字、下划线、破折号
  4. 使用${}来引用 , 参数之间使用空格分割
  5. 使用 # 可以做注释
project( [...])
或
project(
[version [.[.[.]]]]
[description ]
[homepage_url ]
[languages ...])

project命令用于指定cmake工程的名称,实际上,它还可以指定cmake工程的版本号(version关键字)、简短的描述(description关键字)、ag真人游戏主页url(homepage_url关键字)和编译工程使用的语言(languages关键字)。

  1. project_name:将当前工程的名称赋值给project_name,同时${project_name}变量赋值为project_name。
  2. version:指定工程的版本号。
  3. description:对工程的文本描述。
  4. homepage_url:指定工程的ag真人游戏主页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
_description
cmake_project_description**

示例4 homepage_url用法

project (mytest homepage_url “https://www.xxx(示例).com”)
以下变量会被赋值
**project_homepage_url
_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、_source_dir、project_binary_dir、_binary_dir等)。但是version、description、homepage_url等选项对应的变量不会被赋值(languages例外,即使不指定,默认语言为c和cxx)。
  2. project命令需要放置在其他命令调用之前,在cmake_minimum_required命令之后。
  3. 如果多次调用project命令,那么cmake_project_name、cmake_project_version、cmake_project_description、cmake_project_homepage_url等变量是以最近一次调用的project命令为准