Back to Cmake

CMP0209

Help/policy/CMP0209.rst

4.3.21.2 KB
Original Source

CMP0209

.. versionadded:: 4.3

Verify interface header sets checks executables without exports.

When :prop_tgt:VERIFY_INTERFACE_HEADER_SETS is set to true on an executable target, CMake 4.2 and below would only perform those checks if the target's :prop_tgt:ENABLE_EXPORTS property was true. The reasoning behind this exclusion was that no other target could consume the headers of an executable target if that executable target didn't export symbols. Since then, other use cases have emerged for verifying header file sets where exporting symbols is no longer a requirement. Therefore, CMake 4.3 and above prefer to verify interface file sets of executable targets regardless of whether they export symbols or not.

The OLD behavior of this policy only verifies interface file sets of an executable target if its :prop_tgt:ENABLE_EXPORTS property is set to true. The NEW behavior always verifies interface file sets of an executable target when :prop_tgt:VERIFY_INTERFACE_HEADER_SETS is set to true.

.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.3 .. |WARNS_OR_DOES_NOT_WARN| replace:: warns .. include:: include/STANDARD_ADVICE.rst

.. include:: include/DEPRECATED.rst