CMakeDependentOption

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

仅当一组其他条件为真时,此宏才会向用户提供一个选项。

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

如果 <depends> 中条件的分号分隔列表 <CMake Language Lists>` 全部为真,则使 <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_BARUSE_ZOT 的状态发生变化,则 USE_FOO 选项的任何值都会被保存,以便在重新启用该选项时保留其旧值。

在 3.22 版本加入: 现在支持完整的 条件语法。请参阅政策:policy:CMP0127