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:选项的生成条件不成立的话变量的值
相关推荐
mashagua2 小时前
RPA系列-uipath 学习笔记3
笔记·学习·rpa
nikoni232 小时前
828考研资料汇总
笔记·其他·硬件工程
青い月の魔女4 小时前
数据结构初阶---二叉树
c语言·数据结构·笔记·学习·算法
qq_589568104 小时前
node.js web框架koa的使用
笔记·信息可视化·echarts
stm 学习ing5 小时前
HDLBits训练6
经验分享·笔记·fpga开发·fpga·eda·verilog hdl·vhdl
stm 学习ing5 小时前
HDLBits训练4
经验分享·笔记·fpga开发·课程设计·fpga·eda·verilog hdl
炸毛的飞鼠6 小时前
汇编语言学习
笔记·学习
风无雨6 小时前
react杂乱笔记(一)
前端·笔记·react.js
胡西风_foxww6 小时前
【ES6复习笔记】Class类(15)
javascript·笔记·es6·继承··class·静态成员
2301_815389377 小时前
【笔记】下载mysql5.7
笔记