CMakeDependentOption¶
提供依赖于其他选项的选项的宏。
此宏仅在满足一组其他条件时才向用户显示一个选项。
- cmake_dependent_option¶
cmake_dependent_option(<option> "<help_text>" <value> <depends> <force>)
如果
<depends>
中以分号分隔的条件列表全部为真,则使<option>
对用户可用。否则,名为<option>
的局部变量将被设置为<force>
。当
<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_BAR
或 USE_ZOT
的状态发生变化,则会保存 USE_FOO
选项的任何值,以便在重新启用该选项时,它会保留其旧值。
完整的条件语法
cmake_dependent_option(USE_FOO "Use Foo" ON "USE_A AND (USE_B OR USE_C)" OFF)
与前面的示例类似,如果使用完整条件语法的参数评估为真,则提供一个名为 USE_FOO
的选项,其默认值为 ON。否则,它会将 USE_FOO
设置为 OFF 并在 GUI 中从用户界面隐藏该选项。当条件更改时,选项会以与上述类似的方式保存。这使得可以使用完整的条件语法作为 if 子句参数,例如使用括号和类似方式对条件进行分组。