CMP0165¶
在版本 3.30 中新增。
enable_language()
不得在 project()
之前呼叫。
在 CMake 3.29 及更早版本中,如果在首次呼叫 project()
之前呼叫 enable_language()
,語言將會被啟用,但可能會使用預期會被設定但尚未設定的細節。在 CMake 3.30 及更高版本中,如果偵測到尚未呼叫 project()
,enable_language()
傾向於拒絕這種情況,並停止並顯示致命錯誤。此策略為專案提供相容性,這些專案在 enable_language()
在 project()
之前呼叫時碰巧可以運作,並且尚未更新為以要求的順序呼叫這些命令。
此策略的 OLD
行為是允許在 project()
之前呼叫 enable_language()
。此策略的 NEW
行為是在這種情況下失敗並顯示致命錯誤。
此策略在 CMake 版本 3.30 中引入。它可以使用 cmake_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake 會發出警告,並使用 OLD
行為。
注意
策略的 OLD
行為依定義已棄用
,並可能在未來的 CMake 版本中移除。