# 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.

Usage:

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

Where `<option>` is 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. Each element in the fourth parameter is evaluated as an if-condition, so Condition Syntax can be used.

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.