CMP0066 — CMake 3.20.3 Documentation

# CMP0066

New in version 3.7.

Honor per-config flags in `try_compile()` source-file signature.

The source file signature of the `try_compile()` command uses the value of the `CMAKE_<LANG>_FLAGS` variable in the test project so that the test compilation works as it would in the main project. However, CMake 3.6 and below do not also honor config-specific compiler flags such as those in the `CMAKE_<LANG>_FLAGS_DEBUG` variable. CMake 3.7 and above prefer to honor config-specific compiler flags too. This policy provides compatibility for projects that do not expect config-specific compiler flags to be used.

The `OLD` behavior of this policy is to ignore config-specific flag variables like `CMAKE_<LANG>_FLAGS_DEBUG` and only use CMake's built-in defaults for the current compiler and platform.

The `NEW` behavior of this policy is to honor config-specific flag variabldes like `CMAKE_<LANG>_FLAGS_DEBUG`.

This policy was introduced in CMake version 3.7. Unlike most policies, CMake version 3.20.3 does not warn by default when this policy is not set and simply uses `OLD` behavior. See documentation of the `CMAKE_POLICY_WARNING_CMP0066` variable to control the warning.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.