64

CMake后置-如何读懂复杂的文档

 4 years ago
source link: http://alanli7991.github.io/2019/12/09/CMake09如何读懂复杂文档/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

CMake的官方文档一直都以晦涩著称,学习曲线比较陡峭,仅有指令的手册没有完善的入门指导

这里补充一些入门提示,帮助新手理解

file(GLOB <variable>
     [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS]
     [<globbing-expressions>...])

符号的含义

符号 含义 示例 Plain Text 命令本身,不能修改和自定义 file、GLOB Brackets () 函数的参数 和所有类C语言一样 Angle Brackets <> 必选参数 \ Square Brackets [] 可选参数 [CONFIGURE_DEPENDS] Oring \ 多选一的可选项 true\ false Variable 用户自定义变量 variable Ellipsis … 变长参数 [\<>…]

这些符号规则和Shell的说明文档十分类似,如果有Linux相关经验的人应该不难理解

解析举例

根据符号分析,我们可以拆分解析指令

  1. file是指令本身
  2. 第一个固定参数 GLOB 代表Action
  3. 第二个参数代表传入一个变量用于储存结果
  4. 第三、四个参数一起作为可选输入参数,参数名 LIST_DIRECTORIES 参数值 true 或 false
  5. 第五、六个参数一起作为可选输入参数,但是如果第四个存在,则第五个必须存在,参数名 RELATIVE 参数值为一个路径
  6. 第七个参数参数为可选参数,本身不附带输入,为标记位,参数名 CONFIGURE_DEPENDS
  7. 其八个参数为可选参数,该参数为变长参数,且必须使用 globbing-expressions
# file : 固定命令
# GLOB : 固定一个参数
# CPP_FILES : 第二个参数
# 3 - 7 个参数均被省略
# ..../*.cpp : 第八个参数

file(GLOB CPP_FILES ${CMAKE_CURRENT_LIST_DIR}/source/*.cpp)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK