summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-06-03 13:03:51 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2014-06-03 13:03:51 (GMT)
commita38cc338244dd8cd6bff164b107bf22e564b31b9 (patch)
tree93faec55a7b066057630cda52a639ce92f8e7026
parentf60da64a4d98e1fc78c14e7a48c23490f34406e0 (diff)
parent907e422bc889135e9789ead872c0fd644ba76186 (diff)
downloadCMake-a38cc338244dd8cd6bff164b107bf22e564b31b9.zip
CMake-a38cc338244dd8cd6bff164b107bf22e564b31b9.tar.gz
CMake-a38cc338244dd8cd6bff164b107bf22e564b31b9.tar.bz2
Merge topic 'doc-include-dir-props'
907e422b Help: Explain build/install-tree include dirs in more places (#14946)
-rw-r--r--Help/command/target_include_directories.rst14
-rw-r--r--Help/manual/cmake-buildsystem.7.rst6
-rw-r--r--Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst18
3 files changed, 35 insertions, 3 deletions
diff --git a/Help/command/target_include_directories.rst b/Help/command/target_include_directories.rst
index 75f917d..581bace 100644
--- a/Help/command/target_include_directories.rst
+++ b/Help/command/target_include_directories.rst
@@ -40,3 +40,17 @@ Arguments to ``target_include_directories`` may use "generator expressions"
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.
+
+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:
+
+.. code-block:: cmake
+
+ target_include_directories(mylib PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/mylib>
+ $<INSTALL_INTERFACE:include/mylib> # <prefix>/include/mylib
+ )
diff --git a/Help/manual/cmake-buildsystem.7.rst b/Help/manual/cmake-buildsystem.7.rst
index f3616fb..fdd1be4 100644
--- a/Help/manual/cmake-buildsystem.7.rst
+++ b/Help/manual/cmake-buildsystem.7.rst
@@ -578,9 +578,9 @@ expands to the installation prefix when imported by a consuming project.
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 these
-expressions, and are interpreted relative to the current source directory
-or the installation prefix, as appropriate:
+based on the usage location. Relative paths are allowed within the
+``INSTALL_INTERFACE`` expression and are interpreted relative to the
+installation prefix. For example:
.. code-block:: cmake
diff --git a/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst b/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
index bf4ab46..899e821 100644
--- a/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
+++ b/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
@@ -3,6 +3,10 @@ INTERFACE_INCLUDE_DIRECTORIES
List of public include directories for a library.
+The :command:`target_include_directories` command populates this property
+with values given to the ``PUBLIC`` and ``INTERFACE`` keywords. Projects
+may also get and set the property directly.
+
Targets may populate this property to publish the include directories
required to compile against the headers for the target. Consuming
targets can add entries to their own :prop_tgt:`INCLUDE_DIRECTORIES`
@@ -13,3 +17,17 @@ Contents of ``INTERFACE_INCLUDE_DIRECTORIES`` may use "generator expressions"
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.
+
+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:
+
+.. code-block:: cmake
+
+ set_property(TARGET mylib APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/mylib>
+ $<INSTALL_INTERFACE:include/mylib> # <prefix>/include/mylib
+ )