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:选项的生成条件不成立的话变量的值
相关推荐
bnsarocket7 分钟前
Verilog和FPGA的自学笔记6——计数器(D触发器同步+异步方案)
笔记·fpga开发·verilog·自学·硬件编程
LK_071 小时前
【Open3D】Ch.3:顶点法向量估计 | Python
开发语言·笔记·python
li星野1 小时前
打工人日报#20251011
笔记·程序人生·fpga开发·学习方法
摇滚侠2 小时前
Spring Boot 3零基础教程,yml配置文件,笔记13
spring boot·redis·笔记
QT 小鲜肉2 小时前
【个人成长笔记】在Ubuntu中的Linux系统安装 anaconda 及其相关终端命令行
linux·笔记·深度学习·学习·ubuntu·学习方法
QT 小鲜肉2 小时前
【个人成长笔记】在Ubuntu中的Linux系统安装实验室WIFI驱动安装(Driver for Linux RTL8188GU)
linux·笔记·学习·ubuntu·学习方法
急急黄豆2 小时前
MADDPG学习笔记
笔记·学习
Chloeis Syntax2 小时前
栈和队列笔记2025-10-12
java·数据结构·笔记·
QZ_orz_freedom3 小时前
学习笔记--文件上传
java·笔记·学习
摇滚侠3 小时前
Spring Boot 3零基础教程,整合Redis,笔记12
spring boot·redis·笔记