CMP0155

於 3.28 版本新增。

當支援時,會掃描至少使用 C++20 的目標中的 C++ 原始碼以尋找引入 (import)。

CMake 3.27 及更早版本假設 C++ 原始碼不會 import 模組。CMake 3.28 及更新版本傾向於假設使用 C++20 或更高版本的目標中的 C++ 原始碼可能會 import 模組,並且必須在編譯之前進行掃描,除非明確禁用。此策略為使用 C++20 或更高版本(但沒有模組)且尚未更新以關閉掃描的專案提供了相容性,例如透過 CMAKE_CXX_SCAN_FOR_MODULES 變數。 有關 C++ 模組支援的更多詳細資訊,請參閱 cmake-cxxmodules(7) 手冊。

此策略的 OLD 行為是假設 C++ 20 和更新版本的原始碼不會引入模組。此策略的 NEW 行為是假設如果編譯器了解如何掃描其相依性,C++ 20 和更新版本檔案可能會引入模組,並且需要掃描。

此策略在 CMake 版本 3.28 中引入。它可以透過 cmake_policy()cmake_minimum_required() 來設定。 如果未設定,CMake 將不會發出警告,並使用 OLD 行為。

注意

策略的 OLD 行為 根據定義已棄用 並且可能會在 CMake 的未來版本中移除。