summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2023-05-14 15:22:27 +0200
committerMarc Chevrier <marc.chevrier@gmail.com>2023-05-14 15:22:27 +0200
commit99f8505fda0f5c23877e9f90b55d3fe575137404 (patch)
tree47ae5a135aa9481d9d255322d19ad947b2461b26
parent13eae753eaad277ad3f6e308722ade7560404beb (diff)
downloadcmake-99f8505fda0f5c23877e9f90b55d3fe575137404.tar.gz
Help: Update SYSTEM oriented target properties for Apple Frameworks
This is a complement to !8469.
-rw-r--r--Help/prop_tgt/IMPORTED_NO_SYSTEM.rst2
-rw-r--r--Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst15
-rw-r--r--Help/prop_tgt/SYSTEM.rst14
3 files changed, 19 insertions, 12 deletions
diff --git a/Help/prop_tgt/IMPORTED_NO_SYSTEM.rst b/Help/prop_tgt/IMPORTED_NO_SYSTEM.rst
index c8ec8b5c48..e1fea37d8c 100644
--- a/Help/prop_tgt/IMPORTED_NO_SYSTEM.rst
+++ b/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
diff --git a/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst b/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
index a4c9b9fddc..458618b7e7 100644
--- a/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
+++ b/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.
diff --git a/Help/prop_tgt/SYSTEM.rst b/Help/prop_tgt/SYSTEM.rst
index c7ae27e819..f5c11bcb8b 100644
--- a/Help/prop_tgt/SYSTEM.rst
+++ b/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.