CMakeDependentOption

提供一个依赖于其他选项的选项的宏。

此宏仅在其他条件集合为真时向用户展示选项。

cmake_dependent_option
cmake_dependent_option(<option> "<help_text>" <value> <depends> <force>)

<depends> 中条件的 分号分隔的列表 均为真时,向用户提供 <option>

如果 <option> 可用,则使用给定的 <help_text> 和初始 <value>。否则,在将来满足 <depends> 条件之前,为用户设置的任何值都会保留下来。

请注意,<option> 变量只有在调用方的范围内才具有满足 <depends> 条件的值,因为它是一个局部变量。

示例调用

cmake_dependent_option(USE_FOO "Use Foo" ON "USE_BAR;NOT USE_ZOT" OFF)

如果 USE_BAR 为真并且 USE_ZOT 为假,则提供了名为 USE_FOO 的选项,其默认值为 ON。否则,将 USE_FOO 设置为 OFF,并向用户隐藏该选项。如果 USE_BARUSE_ZOT 的状态发生变化,则 USE_FOO 选项的任何值都会被保存下来,以便在重新启用该选项时保留其旧值。

在 3.22 版中添加: 现在支持完整的 条件语法。请参见策略 CMP0127