Merge topic 'help-system-framework'

99f8505fda Help: Update SYSTEM oriented target properties for Apple Frameworks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8475
This commit is contained in:
Brad King
2023-05-16 14:43:30 +00:00
committed by Kitware Robot
3 changed files with 19 additions and 12 deletions

View File

@@ -25,6 +25,8 @@ system target. This has the following effects:
would be by default. Entries of
:prop_tgt:`INTERFACE_SYSTEM_INCLUDE_DIRECTORIES` are not affected,
and will always be treated as system include directories.
* On Apple platforms, when the target is a framework, it will not be treated as
system.
This property can also be enabled on a non-imported target. Doing so does
not affect the build system, but does tell the :command:`install(EXPORT)` and

View File

@@ -4,13 +4,14 @@ NO_SYSTEM_FROM_IMPORTED
Do not treat include directories from the interfaces of consumed
:ref:`imported targets` as system directories.
The contents of the :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target property
are treated as system includes when the consumed target's :prop_tgt:`SYSTEM`
property is set to true. By default, :prop_tgt:`SYSTEM` is true for imported
targets and false for other target types. If the ``NO_SYSTEM_FROM_IMPORTED``
property is set to true on a *consuming* target, compilation of sources in that
consuming target will not treat the contents of the
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of consumed imported targets as
When the consumed target's :prop_tgt:`SYSTEM` property is set to true, the
contents of the :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target property are
treated as system includes or, on Apple platforms, when the target is a
framework, it will be treated as system. By default, :prop_tgt:`SYSTEM` is
true for imported targets and false for other target types. If the
``NO_SYSTEM_FROM_IMPORTED`` property is set to true on a *consuming* target,
compilation of sources in that consuming target will not treat the contents of
the :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of consumed imported targets as
system includes, even if that imported target's :prop_tgt:`SYSTEM` property
is false.

View File

@@ -10,13 +10,17 @@ effects:
system include directories when compiling consumers.
Entries of :prop_tgt:`INTERFACE_SYSTEM_INCLUDE_DIRECTORIES` are not
affected, and will always be treated as system include directories.
* On Apple platforms, If the :prop_tgt:`FRAMEWORK` target property is true,
the frameworks directory is treated as system.
For imported targets, this property defaults to true, which means
that their :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` are treated
as system directories by default. If their ``SYSTEM`` property is false,
then their :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` will not be
treated as system. Use the :prop_tgt:`EXPORT_NO_SYSTEM` property to change
how a target's ``SYSTEM`` property is set when it is installed.
that their :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` and, if the
:prop_tgt:`FRAMEWORK` target property is true, frameworks directory are
treated as system directories by default. If their ``SYSTEM`` property is
false, then their :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` as well as
frameworks will not be treated as system. Use the :prop_tgt:`EXPORT_NO_SYSTEM`
property to change how a target's ``SYSTEM`` property is set when it is
installed.
For non-imported targets, this target property is initialized from
the :prop_dir:`SYSTEM` directory property when the target is created.