| VERIFY_HEADER_SETS |
| ------------------ |
| |
| .. versionadded:: 3.24 |
| |
| Used to verify that all headers in a target's header sets can be included on |
| their own. |
| |
| When this property is set to true, and the target is an object library, static |
| library, shared library, or executable with exports enabled, and the target |
| has one or more ``PUBLIC`` or ``INTERFACE`` header sets, an object library |
| target named ``<target_name>_verify_header_sets`` is created. This verification |
| target has one source file per header in the ``PUBLIC`` and ``INTERFACE`` |
| header sets. Each source file only includes its associated header file. The |
| verification target links against the original target to get all of its usage |
| requirements. The verification target has its :prop_tgt:`EXCLUDE_FROM_ALL` and |
| :prop_tgt:`DISABLE_PRECOMPILE_HEADERS` properties set to true, and its |
| :prop_tgt:`AUTOMOC`, :prop_tgt:`AUTORCC`, :prop_tgt:`AUTOUIC`, and |
| :prop_tgt:`UNITY_BUILD` properties set to false. |
| |
| If the header's :prop_sf:`LANGUAGE` property is set, the value of that property |
| is used to determine the language with which to compile the header file. |
| Otherwise, if the target has any C++ sources, the header is compiled as C++. |
| Otherwise, if the target has any C sources, the header is compiled as C. |
| Otherwise, the header file is not compiled. |