CMP0155¶
在 3.28 版本中添加。
在受支持的情况下,带有至少 C++20 的目标中的 C++ 源时,会扫描这些源来查找 import。
CMake 3.27 及更低版本假定 C++ 源不 import
模块。CMake 3.28 及更高版本更倾向于假定使用 C++20 或 higher 的目标中的 C++ 源可能会 import
模块,并且必须在编译之前进行扫描,除非明确禁用。此策略为未更新为关闭扫描(例如,通过 CMAKE_CXX_SCAN_FOR_MODULES
变量)的,使用 C++20 或更高版本但没有模块的项目提供了兼容性。有关对 C++ 模块支持的更多详细信息,请参阅 cmake-cxxmodules(7)
手册。
针对此策略,OLD
行为是假定 C++ 20 及更高版本的源不导入模块。针对此策略,NEW
行为是假定 C++ 20 及更高版本的文件可能会导入模块(如果编译器了解如何扫描以查找它们的依赖关系),并且需要进行扫描。
此策略在 CMake 3.28 版本中引入。它可能已通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,则 CMake 不会发出警告,并且使用 OLD
行为。
注意
某个策略的 OLD
行为在定义上已弃用
,并且可能会在 CMake 的未来版本中被移除。