CMP0155ΒΆ
New in version 3.28.
C++ sources in targets with at least C++20 are scanned for imports.
CMake 3.27 and below assume that C++ sources do not import
modules.
CMake 3.28 and above prefer to assume that C++ sources in targets using C++20
or higher might import
modules, and must be scanned before compiling,
unless explicitly disabled. This policy provides compatibility for projects
that use C++20 or higher, without modules, that have not been updated to turn
off scanning, e.g., via the CMAKE_CXX_SCAN_FOR_MODULES
variable.
See the cmake-cxxmodules(7)
manual for more details on C++ module
support.
The OLD
behavior for this policy is to assume that C++ 20 and newer
sources do not import modules. The NEW
behavior for this policy is to
assume that C++ 20 and newer files may import modules, and need to be scanned.
This policy was introduced in CMake version 3.28. Use the
cmake_policy()
command to set it to OLD
or NEW
explicitly.
Unlike many policies, CMake version 3.28.0-rc1 does not warn
when this policy is not set and simply uses OLD
behavior.
Note
The OLD
behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.