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
子句的參數,例如使用括號和類似方式對條件進行分組。