summaryrefslogtreecommitdiffstats
path: root/Help/command
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2022-01-30 11:59:57 (GMT)
committerCraig Scott <craig.scott@crascit.com>2022-01-31 05:24:07 (GMT)
commit3efa3251e9ebd7d6a5e396152c7a14f9aa529f02 (patch)
tree36aec7ae2614a39b2e92292a85e329844f06f14c /Help/command
parent4b033ca0eb486fa23f58e4df2f2a7d3539ca0a3f (diff)
downloadCMake-3efa3251e9ebd7d6a5e396152c7a14f9aa529f02.zip
CMake-3efa3251e9ebd7d6a5e396152c7a14f9aa529f02.tar.gz
CMake-3efa3251e9ebd7d6a5e396152c7a14f9aa529f02.tar.bz2
Help: Clarify relative path handling for target_include_directories()
Fixes: #22853
Diffstat (limited to 'Help/command')
-rw-r--r--Help/command/target_include_directories.rst25
1 files changed, 17 insertions, 8 deletions
diff --git a/Help/command/target_include_directories.rst b/Help/command/target_include_directories.rst
index 3e53b2e..3fc7926 100644
--- a/Help/command/target_include_directories.rst
+++ b/Help/command/target_include_directories.rst
@@ -27,9 +27,8 @@ The following arguments specify include directories.
.. versionadded:: 3.11
Allow setting ``INTERFACE`` items on :ref:`IMPORTED targets <Imported Targets>`.
-Specified include directories may be absolute paths or relative paths.
-Repeated calls for the same <target> append items in the order called. If
-``SYSTEM`` is specified, the compiler will be told the
+Repeated calls for the same ``<target>`` append items in the order called.
+If ``SYSTEM`` is specified, the compiler will be told the
directories are meant as system include directories on some platforms
(signalling this setting might achieve effects such as the compiler
skipping warnings, or these fixed-install system files not being
@@ -43,12 +42,22 @@ with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
manual for available expressions. See the :manual:`cmake-buildsystem(7)`
manual for more on defining buildsystem properties.
+Specified include directories may be absolute paths or relative paths.
+A relative path will be interpreted as relative to the current source
+directory (i.e. :variable:`CMAKE_CURRENT_SOURCE_DIR`) and converted to an
+absolute path before storing it in the associated target property.
+If the path starts with a generator expression, it will always be assumed
+to be an absolute path (with one exception noted below) and will be used
+unmodified.
+
Include directories usage requirements commonly differ between the build-tree
-and the install-tree. The ``BUILD_INTERFACE`` and ``INSTALL_INTERFACE``
-generator expressions can be used to describe separate usage requirements
-based on the usage location. Relative paths are allowed within the
-``INSTALL_INTERFACE`` expression and are interpreted relative to the
-installation prefix. For example:
+and the install-tree. The :genex:`BUILD_INTERFACE` and
+:genex:`INSTALL_INTERFACE` generator expressions can be used to describe
+separate usage requirements based on the usage location. Relative paths
+are allowed within the :genex:`INSTALL_INTERFACE` expression and are
+interpreted as relative to the installation prefix. Relative paths should not
+be used in :genex:`BUILD_INTERFACE` expressions because they will not be
+converted to absolute. For example:
.. code-block:: cmake