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_BARUSE_ZOT 的狀態發生變化,則會儲存 USE_FOO 選項的任何值,以便在重新啟用該選項時保留其舊值。

在 3.22 版本中新增: 現在支援完整的 條件語法。請參閱原則 CMP0127