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