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 版本中移除。