Browse Source

Merge topic 'help-system-framework'

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

Acked-by: Kitware Robot <[email protected]>
Merge-request: !8475
Brad King 2 years ago
parent
commit
76cc81f0fe

+ 2 - 0
Help/prop_tgt/IMPORTED_NO_SYSTEM.rst

@@ -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

+ 8 - 7
Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst

@@ -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.
 

+ 9 - 5
Help/prop_tgt/SYSTEM.rst

@@ -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.