CMake的cmake_dependent_option用法

前言

本篇文章讲解CMake的cmake_dependent_option用法

选项和变量

在讲cmake_dependent_option之前,先讲一下CMake的选项和变量

选项

在CMake中,选项可以用来控制构建过程中的一些开关。我们可以使用option()命令来添加一个选项。option的函数原型如下:

复制代码
option(<variable> "<help_text>" [value])
  • variable:选项的名称
  • help_text:选项的描述信息
  • value:选项的默认值,可以是ON或者OFF

选项就相当于一个BOOL变量,如果当前定义的选项在定义之前已设置为普通变量或缓存变量,则该命令不执行任何操作

选项的意义

选项的存在意义主要是为了给CMake的用户使用,提供一种在外部控制构建过程的方法,比如我们定义了一个选项

复制代码
// OPEN_DEBUG选项默认值OFF
option(OPEN_DEBUG "open debug" OFF)

我们在外部可以手动修改OPEN_DEBUG的值

复制代码
// 这样调用的话OPEN_DEBUG选项的值就是ON,
// 这样,我们就可以在外部对构建过程进行控制
cmake -DOPEN_DEBUG=ON ./

变量

CMake中的变量用于存储数据,并在构建过程中传递信息。我们可以使用set()命令来定义一个变量。set的函数原型如下:

复制代码
set(<variable> <value>... [PARENT_SCOPE])
  • variable:变量的名称
  • value:变量的值,如果不设置该值,变量相当于未定义

变量也是可以在外部进行设置的,设置方法和选项一样

cmake_dependent_option

函数原型如下:

复制代码
cmake_dependent_option(<option> "<help_text>" <value> <depends> <force>)
  • option:选项的名称
  • help_text:选项的描述信息
  • value:选项的生成条件成立的话选项的值
  • depends :选项的生成条件,depends可以添加多个选项或者变量,选项或者变量之间用分号分隔,整个选项用双引号包含起来。如果depends的所有选项或者变量都成立的话,该宏会生成一个选项或者为已经存在的选项重新赋值。否则,该宏会生成一个本地的变量,这样,后面改变了depends以后再次调用该宏,也不会再次生成选项了。
  • force:选项的生成条件不成立的话变量的值
相关推荐
老虎062715 分钟前
黑马点评学习笔记11(Redission)
笔记·学习
YJlio38 分钟前
ListDLLs & Handle 学习笔记(8.11):谁注入了 DLL?谁占着文件不放?一篇教你全搞定
网络·笔记·学习
蒙奇D索大1 小时前
【算法】回溯算法精讲:从深度优先搜索到剪枝优化
经验分享·笔记·算法·深度优先·剪枝·改行学it
爱奥尼欧1 小时前
【Linux笔记】网络部分——NAT-代理-网络穿透
linux·网络·笔记
一个平凡而乐于分享的小比特2 小时前
UCOS-III笔记(七)
笔记·ucosiii
小马爱打代码3 小时前
Java学习笔记:注解详解
java·笔记·学习
QT 小鲜肉4 小时前
【C++基础与提高】第十一章:面向对象编程进阶——继承与多态
java·linux·开发语言·c++·笔记·qt
四维碎片4 小时前
【Qt】多线程学习笔记
笔记·qt·学习
AA陈超5 小时前
ASC学习笔记0012:查找现有的属性集,如果不存在则断言
笔记·学习
wshzd5 小时前
LLM之Agent(二十八)|AI音视频转笔记方法揭秘
人工智能·笔记