[Cmake-commits] CMake branch, next, updated. v2.8.12.1-6828-gfb30e01

Nils Gladitz nilsgladitz at gmail.com
Tue Jan 7 19:29:29 EST 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  fb30e0124b292ca9bb384dfede534ac5eb9cbd5c (commit)
       via  92c4d4039e6f3c981e8b42d98240e53b8c33bdaf (commit)
      from  128da9c8e3aac950f595498244bed9511a658e9d (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=fb30e0124b292ca9bb384dfede534ac5eb9cbd5c
commit fb30e0124b292ca9bb384dfede534ac5eb9cbd5c
Merge: 128da9c 92c4d40
Author:     Nils Gladitz <nilsgladitz at gmail.com>
AuthorDate: Tue Jan 7 19:29:25 2014 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Jan 7 19:29:25 2014 -0500

    Merge topic 'wix-cmake-package-registry' into next
    
    92c4d40 CPackWiX: added new CPACK_WIX_CMAKE_PACKAGE_REGISTRY variable


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=92c4d4039e6f3c981e8b42d98240e53b8c33bdaf
commit 92c4d4039e6f3c981e8b42d98240e53b8c33bdaf
Author:     Nils Gladitz <nilsgladitz at gmail.com>
AuthorDate: Wed Jan 8 01:28:24 2014 +0100
Commit:     Nils Gladitz <nilsgladitz at gmail.com>
CommitDate: Wed Jan 8 01:28:24 2014 +0100

    CPackWiX: added new CPACK_WIX_CMAKE_PACKAGE_REGISTRY variable
    
    Allows automatic registration of installed packages with
    the cmake package registry.

diff --git a/Modules/CPackWIX.cmake b/Modules/CPackWIX.cmake
index 30f57c7..39183c6 100644
--- a/Modules/CPackWIX.cmake
+++ b/Modules/CPackWIX.cmake
@@ -205,6 +205,17 @@
 #
 #  ``<TOOL>`` can be either LIGHT or CANDLE.
 #
+# .. variable:: CPACK_WIX_CMAKE_PACKAGE_REGISTRY
+#
+#  If this variable is set the generated installer will create
+#  an entry in the windows registry key
+#  ``HKEY_LOCAL_MACHINE\Software\Kitware\CMake\Packages\<package>``
+#  The value for ``<package>`` is provided by this variable.
+#
+#  Assuming you also install a CMake configuration file this will
+#  allow other CMake projects to find your package with
+#  the :command:`find_package` command.
+#
 
 #=============================================================================
 # Copyright 2013 Kitware, Inc.
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
index a55a6a6..998b5f1 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx
+++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
@@ -437,7 +437,15 @@ bool cmCPackWIXGenerator::CreateWiXSourceFiles()
 
   featureDefinitions.AddAttribute("Level", "1");
 
-  CreateFeatureHierarchy(featureDefinitions);
+  if(!CreateCMakePackageRegistryEntry(featureDefinitions))
+    {
+    return false;
+    }
+
+  if(!CreateFeatureHierarchy(featureDefinitions))
+    {
+    return false;
+    }
 
   featureDefinitions.EndElement("Feature");
 
@@ -564,6 +572,39 @@ bool cmCPackWIXGenerator::CreateWiXSourceFiles()
   return true;
 }
 
+bool cmCPackWIXGenerator::CreateCMakePackageRegistryEntry(
+  cmWIXSourceWriter& featureDefinitions)
+{
+  const char* package = GetOption("CPACK_WIX_CMAKE_PACKAGE_REGISTRY");
+  if(!package)
+    {
+    return true;
+    }
+
+  featureDefinitions.BeginElement("Component");
+  featureDefinitions.AddAttribute("Id", "CM_PACKAGE_REGISTRY");
+  featureDefinitions.AddAttribute("Directory", "TARGETDIR");
+  featureDefinitions.AddAttribute("Guid", "*");
+
+  std::string registryKey =
+      std::string("Software\\Kitware\\CMake\\Packages\\") + package;
+
+  std::string upgradeGuid = GetOption("CPACK_WIX_UPGRADE_GUID");
+
+  featureDefinitions.BeginElement("RegistryValue");
+  featureDefinitions.AddAttribute("Root", "HKLM");
+  featureDefinitions.AddAttribute("Key", registryKey);
+  featureDefinitions.AddAttribute("Name", upgradeGuid);
+  featureDefinitions.AddAttribute("Type", "string");
+  featureDefinitions.AddAttribute("Value", "[INSTALL_ROOT]");
+  featureDefinitions.AddAttribute("KeyPath", "yes");
+  featureDefinitions.EndElement("RegistryValue");
+
+  featureDefinitions.EndElement("Component");
+
+  return true;
+}
+
 bool cmCPackWIXGenerator::CreateFeatureHierarchy(
   cmWIXSourceWriter& featureDefinitions)
 {
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.h b/Source/CPack/WiX/cmCPackWIXGenerator.h
index 0a85ae2..1f4facf 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.h
+++ b/Source/CPack/WiX/cmCPackWIXGenerator.h
@@ -81,6 +81,9 @@ private:
 
   bool CreateWiXSourceFiles();
 
+  bool CreateCMakePackageRegistryEntry(
+    cmWIXSourceWriter& featureDefinitions);
+
   bool CreateFeatureHierarchy(
     cmWIXSourceWriter& featureDefinitions);
 

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

Summary of changes:
 Modules/CPackWIX.cmake                   |   11 +++++++
 Source/CPack/WiX/cmCPackWIXGenerator.cxx |   43 +++++++++++++++++++++++++++++-
 Source/CPack/WiX/cmCPackWIXGenerator.h   |    3 ++
 3 files changed, 56 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list