# 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.