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:选项的生成条件不成立的话变量的值
相关推荐
希露菲叶特格雷拉特37 分钟前
PyTorch深度学习笔记(二十)(模型验证测试)
人工智能·pytorch·笔记
lingggggaaaa2 小时前
小迪安全v2023学习笔记(一百四十五讲)—— Webshell篇&魔改冰蝎&打乱特征指纹&新增加密协议&过后门查杀&过流量识别
笔记·学习·安全·魔改冰蝎·免杀对抗·免杀技术
Digitally3 小时前
如何将iPhone上的笔记传输到电脑
笔记·电脑·iphone
lkbhua莱克瓦244 小时前
Java基础——常用算法4
java·数据结构·笔记·算法·github·排序算法·快速排序
学渣676565 小时前
11111
笔记
MeowKnight9585 小时前
【DIY】PCB练习记录2——51单片机核心板
笔记
tjsoft12 小时前
网站如何被百度收录之探索笔记
笔记
QT 小鲜肉13 小时前
【个人成长笔记】在 Linux 系统下撰写老化测试脚本以实现自动压测效果(亲测有效)
linux·开发语言·笔记·单片机·压力测试
MeowKnight95813 小时前
【Qt】Qt实践记录2——TCP通信服务器和客户端demo
笔记·qt
The_Second_Coming15 小时前
ELK 学习笔记
笔记·学习·elk