[Cmake-commits] CMake branch, next, updated. v3.0.0-4167-g58fb132

Brad King brad.king at kitware.com
Wed Jul 9 12:57:14 EDT 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  58fb132fd71d372d9f39b8fdd9753630d91b64f4 (commit)
       via  cfab942e5ff8463f8053564e68179da110280b43 (commit)
      from  91c083862a078f4c37ef7088ff2edd0833719a61 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=58fb132fd71d372d9f39b8fdd9753630d91b64f4
commit 58fb132fd71d372d9f39b8fdd9753630d91b64f4
Merge: 91c0838 cfab942
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jul 9 12:57:13 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Jul 9 12:57:13 2014 -0400

    Merge topic 'doc-package-target-import-once' into next
    
    cfab942e Help: Update cmake-packages.7 examples to import targets only once


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cfab942e5ff8463f8053564e68179da110280b43
commit cfab942e5ff8463f8053564e68179da110280b43
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jul 9 12:54:22 2014 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 9 12:57:19 2014 -0400

    Help: Update cmake-packages.7 examples to import targets only once
    
    Package configuration files should load their targets files at most once
    in a given scope.  Update our ClimbingStats example to show how to do
    this.

diff --git a/Help/manual/cmake-packages.7.rst b/Help/manual/cmake-packages.7.rst
index c4cca6d..5badd48 100644
--- a/Help/manual/cmake-packages.7.rst
+++ b/Help/manual/cmake-packages.7.rst
@@ -385,9 +385,12 @@ In this case, the ``ClimbingStatsConfig.cmake`` file could be as simple as:
 
 .. code-block:: cmake
 
-  include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsTargets.cmake")
+  if(NOT TARGET Upstream::ClimbingStats)
+    include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsTargets.cmake")
+  endif()
 
-As this allows downstreams to use the ``IMPORTED`` targets.  If any macros
+This allows downstreams to use the ``IMPORTED`` targets, and guards
+against importing the targets more than once.  If any macros
 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.
@@ -454,7 +457,9 @@ dependencies of a package should be found in the ``Config.cmake`` file:
   include(CMakeFindDependencyMacro)
   find_dependency(Stats 2.6.4)
 
-  include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsTargets.cmake")
+  if(NOT TARGET Upstream::ClimbingStats)
+    include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsTargets.cmake")
+  endif()
   include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsMacros.cmake")
 
 The ``find_dependency`` macro also sets ``ClimbingStats_FOUND`` to ``False`` if
@@ -471,7 +476,9 @@ be true. This can be tested with logic in the package configuration file:
   include(CMakeFindDependencyMacro)
   find_dependency(Stats 2.6.4)
 
-  include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsTargets.cmake")
+  if(NOT TARGET Upstream::ClimbingStats)
+    include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsTargets.cmake")
+  endif()
   include("${CMAKE_CURRENT_LIST_DIR}/ClimbingStatsMacros.cmake")
 
   set(_supported_components Plot Table)

-----------------------------------------------------------------------

Summary of changes:
 Help/manual/cmake-packages.7.rst |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list