From 99f8505fda0f5c23877e9f90b55d3fe575137404 Mon Sep 17 00:00:00 2001 From: Marc Chevrier Date: Sun, 14 May 2023 15:22:27 +0200 Subject: Help: Update SYSTEM oriented target properties for Apple Frameworks This is a complement to !8469. --- Help/prop_tgt/IMPORTED_NO_SYSTEM.rst | 2 ++ Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst | 15 ++++++++------- Help/prop_tgt/SYSTEM.rst | 14 +++++++++----- 3 files changed, 19 insertions(+), 12 deletions(-) (limited to 'Help') 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. -- cgit v1.2.1