CMP0128

在版本 3.22 中新增。

當此政策設定為 NEW

OLD 行為

在以下情況下,程式碼可能需要針對 NEW 行為進行更新

  • 如果標準模式旗標先前被 CMake 覆寫,且在編譯器偵測期間未使用,現在由於 CMake 不再新增一個,因為偵測到的預設值是適當的,因此生效。

    此類程式碼應轉換為以下任一項

  • 如果在未設定 <LANG>_STANDARD 的情況下停用了擴充功能,則 CMake 之前實際上不會停用擴充功能。

    此類程式碼應更新為在需要擴充功能時不要停用。

  • 如果當 <LANG>_STANDARD 符合編譯器的預設值時啟用/停用了擴充功能,則 CMake 之前實際上不會啟用/停用擴充功能。

    此類程式碼應更新為設定正確的擴充功能模式。

如果在編譯器偵測期間使用影響標準模式的編譯器旗標 (例如在 工具鏈 檔案 中使用 CMAKE_<LANG>_FLAGS_INIT),則它們將影響偵測到的預設 標準擴充功能

此政策在 CMake 版本 3.22 中引入。它可以通過 cmake_policy()cmake_minimum_required() 進行設定。如果未設定,CMake 預設情況下會發出警告,並使用 OLD 行為。

請參閱 CMAKE_POLICY_WARNING_CMP0128 變數的文件以控制警告。

注意

政策的 OLD 行為依定義已棄用,並可能在 CMake 的未來版本中移除。