summaryrefslogtreecommitdiffstats
path: root/Help/manual
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-01-02 19:44:08 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2014-01-02 19:44:08 (GMT)
commit6cff2afc8bfb38bae989be41ab2451e5577c34a1 (patch)
treed58ffc8229a6f1207ea8dd4fc6bee161a5da95a3 /Help/manual
parent85704c04c0d05c7e390ddccfc78493811a319f7e (diff)
parent98b9f52bc90e96618445785bfd6af777b9dc11bc (diff)
downloadCMake-6cff2afc8bfb38bae989be41ab2451e5577c34a1.zip
CMake-6cff2afc8bfb38bae989be41ab2451e5577c34a1.tar.gz
CMake-6cff2afc8bfb38bae989be41ab2451e5577c34a1.tar.bz2
Merge topic 'export-EXPORT-subcommand'
98b9f52 Help: Document export(EXPORT) in the cmake-packages manual. a1d2bda Don't copy find_dependency in configure_package_config_file. f4f6529 Help: cmake-packages: Add missing slash. cbe7e8f export: Implement EXPORT subcommand (#9822)
Diffstat (limited to 'Help/manual')
-rw-r--r--Help/manual/cmake-packages.7.rst28
1 files changed, 23 insertions, 5 deletions
diff --git a/Help/manual/cmake-packages.7.rst b/Help/manual/cmake-packages.7.rst
index 952da3c..dc301ba 100644
--- a/Help/manual/cmake-packages.7.rst
+++ b/Help/manual/cmake-packages.7.rst
@@ -266,6 +266,7 @@ shared library:
project(UpstreamLib)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
+ set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
set(Upstream_VERSION 3.4.1)
@@ -292,11 +293,20 @@ shared library:
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
- "${CMAKE_CURRENT_BINARY_DIR}/ClimbingStatsConfigVersion.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/ClimbingStats/ClimbingStatsConfigVersion.cmake"
VERSION ${Upstream_VERSION}
COMPATIBILITY AnyNewerVersion
)
+ export(EXPORT ClimbingStatsTargets
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/ClimbingStats/ClimbingStatsTargets.cmake"
+ NAMESPACE Upstream::
+ )
+ configure_file(cmake/ClimbingStatsConfig.cmake
+ "${CMAKE_CURRENT_BINARY_DIR}/ClimbingStats/ClimbingStatsConfig.cmake"
+ COPY_ONLY
+ )
+
set(ConfigPackageLocation lib/cmake/ClimbingStats)
install(EXPORT ClimbingStatsTargets
FILE
@@ -309,7 +319,7 @@ shared library:
install(
FILES
cmake/ClimbingStatsConfig.cmake
- "${CMAKE_CURRENT_BINARY_DIR}/ClimbingStatsConfigVersion.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/ClimbingStats/ClimbingStatsConfigVersion.cmake"
DESTINATION
${ConfigPackageLocation}
COMPONENT
@@ -354,6 +364,14 @@ should be provided by the ``ClimbingStats`` package, they should
be in a separate file which is installed to the same location as the
``ClimbingStatsConfig.cmake`` file, and included from there.
+The :command:`export(EXPORT)` command creates an :prop_tgt:`IMPORTED` targets
+definition file which is specific to the build-tree. This can similiarly be
+used with a suitable package configuration file and package version file to
+define a package for the build tree which may be used without installation.
+Consumers of the build tree can simply ensure that the
+:variable:`CMAKE_PREFIX_PATH` contains the build directory, or set the
+``ClimbingStats_DIR`` to ``<build_dir>/ClimbingStats`` in the cache.
+
This can also be extended to cover dependencies:
.. code-block:: cmake
@@ -375,7 +393,7 @@ dependencies of a package should be found in the ``Config.cmake`` file:
.. code-block:: cmake
- include(CMakePackageConfigHelpers)
+ include(CMakeFindDependencyMacro)
find_dependency(Stats 2.6.4)
include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsTargets.cmake")
@@ -392,7 +410,7 @@ be true. This can be tested with logic in the package configuration file:
.. code-block:: cmake
- include(CMakePackageConfigHelpers)
+ include(CMakeFindDependencyMacro)
find_dependency(Stats 2.6.4)
include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsTargets.cmake")
@@ -405,7 +423,7 @@ be true. This can be tested with logic in the package configuration file:
set(ClimbingStats_FOUND False)
set(ClimbingStats_NOTFOUND_MESSAGE "Specified unsupported component: ${_comp}")
endif()
- include("${CMAKE_CURRENT_LIST_DIR}ClimbingStats${_comp}Targets.cmake")
+ include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStats${_comp}Targets.cmake")
endforeach()
Here, the ``ClimbingStats_NOTFOUND_MESSAGE`` is set to a diagnosis that the package