CMakeDependentOption

Macro to provide an option dependent on other options.

This macro presents an option to the user only if a set of other conditions are true.

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

Makes <option> available to the user if <depends> is true. When <option> is available, the given <help_text> and initial <value> are used. If the <depends> condition is not true, <option> will not be presented and will always have the value given by <force>. Any value set by the user is preserved for when the option is presented again. In case <depends> is a semicolon-separated list, all elements must be true in order to initialize <option> with <value>.

Example invocation:

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

If USE_BAR is true and USE_ZOT is false, this provides an option called USE_FOO that defaults to ON. Otherwise, it sets USE_FOO to OFF and hides the option from the user. If the status of USE_BAR or USE_ZOT ever changes, any value for the USE_FOO option is saved so that when the option is re-enabled it retains its old value.

New in version 3.22: Full Condition Syntax is now supported. See policy CMP0127.