CMP0155¶
在版本 3.28 中添加。
当支持时,在至少使用 C++20 的目标中的 C++ 源代码会扫描导入。
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 的未来版本中移除。