Merge branch 'doc-include-dir-props' into release
This commit is contained in:
commit
910849d176
|
@ -40,3 +40,17 @@ Arguments to ``target_include_directories`` may use "generator expressions"
|
||||||
with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
|
with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
|
||||||
manual for available expressions. See the :manual:`cmake-buildsystem(7)`
|
manual for available expressions. See the :manual:`cmake-buildsystem(7)`
|
||||||
manual for more on defining buildsystem properties.
|
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
|
||||||
|
)
|
||||||
|
|
|
@ -578,9 +578,19 @@ expands to the installation prefix when imported by a consuming project.
|
||||||
Include directories usage requirements commonly differ between the build-tree
|
Include directories usage requirements commonly differ between the build-tree
|
||||||
and the install-tree. The ``BUILD_INTERFACE`` and ``INSTALL_INTERFACE``
|
and the install-tree. The ``BUILD_INTERFACE`` and ``INSTALL_INTERFACE``
|
||||||
generator expressions can be used to describe separate usage requirements
|
generator expressions can be used to describe separate usage requirements
|
||||||
based on the usage location. Relative paths are allowed within these
|
based on the usage location. Relative paths are allowed within the
|
||||||
expressions, and are interpreted relative to the current source directory
|
``INSTALL_INTERFACE`` expression and are interpreted relative to the
|
||||||
or the installation prefix, as appropriate.
|
installation prefix. For example:
|
||||||
|
|
||||||
|
.. code-block:: cmake
|
||||||
|
|
||||||
|
add_library(ClimbingStats climbingstats.cpp)
|
||||||
|
target_include_directories(ClimbingStats INTERFACE
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/generated>
|
||||||
|
$<INSTALL_INTERFACE:/absolute/path>
|
||||||
|
$<INSTALL_INTERFACE:relative/path>
|
||||||
|
$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/$<CONFIG>/generated>
|
||||||
|
)
|
||||||
|
|
||||||
Two convenience APIs are provided relating to include directories usage
|
Two convenience APIs are provided relating to include directories usage
|
||||||
requirements. The :variable:`CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE` variable
|
requirements. The :variable:`CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE` variable
|
||||||
|
|
|
@ -3,6 +3,10 @@ INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
|
||||||
List of public include directories for a library.
|
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
|
Targets may populate this property to publish the include directories
|
||||||
required to compile against the headers for the target. Consuming
|
required to compile against the headers for the target. Consuming
|
||||||
targets can add entries to their own :prop_tgt:`INCLUDE_DIRECTORIES`
|
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)`
|
with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
|
||||||
manual for available expressions. See the :manual:`cmake-buildsystem(7)`
|
manual for available expressions. See the :manual:`cmake-buildsystem(7)`
|
||||||
manual for more on defining buildsystem properties.
|
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
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in New Issue