CMP0027 — CMake 3.26.3 Documentation

# CMP0027

Conditionally linked imported targets with missing include directories.

CMake 2.8.11 introduced introduced the concept of `INTERFACE_INCLUDE_DIRECTORIES`, and a check at cmake time that the entries in the `INTERFACE_INCLUDE_DIRECTORIES` of an `IMPORTED` target actually exist. CMake 2.8.11 also introduced generator expression support in the `target_link_libraries()` command. However, if an imported target is linked as a result of a generator expression evaluation, the entries in the `INTERFACE_INCLUDE_DIRECTORIES` of that target were not checked for existence as they should be.

The `OLD` behavior of this policy is to report a warning if an entry in the `INTERFACE_INCLUDE_DIRECTORIES` of a generator-expression conditionally linked `IMPORTED` target does not exist.

The `NEW` behavior of this policy is to report an error if an entry in the `INTERFACE_INCLUDE_DIRECTORIES` of a generator-expression conditionally linked `IMPORTED` target does not exist.

This policy was introduced in CMake version 3.0. CMake version 3.26.3 warns when the policy is not set and uses `OLD` behavior. Use the `cmake_policy()` command to set it to `OLD` or `NEW` explicitly.

Note

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