CMP0127¶
在版本 3.22 中新增。
cmake_dependent_option()
支援完整的 條件語法。
The <depends>
參數接受以 分號分隔的清單 作為條件。CMake 3.21 及更低版本將每個 condition
評估為 if(${condition})
,這無法正確處理具有巢狀括號群組的條件。CMake 3.22 及更高版本則傾向將每個 condition
評估為 if(<condition>)
,其中 <condition>
會被重新解析,如同直接寫在 if()
的呼叫中。這允許像這樣的表達式
"A AND (B OR C)"
但需要像這樣的表達式
"FOO MATCHES (UPPER|lower)"
重寫為
"FOO MATCHES \"(UPPER|lower)\""
策略 CMP0127
為尚未更新以預期新行為的專案提供相容性。
此策略在 CMake 版本 3.22 中引入。它可以透過 cmake_policy()
或 cmake_minimum_required()
進行設定。如果未設定,CMake 會發出警告,並使用 OLD
行為。
注意
策略的 OLD
行為依 定義已被棄用
,並可能在 CMake 的未來版本中移除。