CMP0127¶
在 3.22 版本中新增。
cmake_dependent_option()
支援完整的 條件語法。
<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 中移除。