Ver Fonte

Merge topic 'wix-product-fragment'

a2ccbffd CPackWIX: Extend the patching mechanism to allow adding content to <Product>.
Brad King há 10 anos atrás
pai
commit
7747e1a7f6

+ 4 - 1
Modules/CPackWIX.cmake

@@ -148,6 +148,9 @@
 #  Currently fragments can be injected into most
 #  Component, File and Directory elements.
 #
+#  The special Id ``#PRODUCT`` can be used to inject content
+#  into the ``<Product>`` element.
+#
 #  The following example illustrates how this works.
 #
 #  Given that the WiX generator creates the following XML element:
@@ -233,7 +236,7 @@
 #  * ARPSIZE - Size (in kilobytes) of the application
 
 #=============================================================================
-# Copyright 2014 Kitware, Inc.
+# Copyright 2014-2015 Kitware, Inc.
 #
 # Distributed under the OSI-approved BSD License (the "License");
 # see accompanying file Copyright.txt for details.

+ 1 - 0
Modules/WIX.template.in

@@ -42,5 +42,6 @@
         <UIRef Id="$(var.CPACK_WIX_UI_REF)" />
 
         <?include "properties.wxi"?>
+        <?include "product_fragment.wxi"?>
     </Product>
 </Wix>

+ 13 - 1
Source/CPack/WiX/cmCPackWIXGenerator.cxx

@@ -1,6 +1,6 @@
 /*============================================================================
   CMake - Cross Platform Makefile Generator
-  Copyright 2000-2014 Kitware, Inc., Insight Software Consortium
+  Copyright 2012-2015 Kitware, Inc., Insight Software Consortium
 
   Distributed under the OSI-approved BSD License (the "License");
   see accompanying file Copyright.txt for details.
@@ -257,6 +257,7 @@ bool cmCPackWIXGenerator::PackageFilesImpl()
 
   CreateWiXVariablesIncludeFile();
   CreateWiXPropertiesIncludeFile();
+  CreateWiXProductFragmentIncludeFile();
 
   if(!CreateWiXSourceFiles())
     {
@@ -385,6 +386,17 @@ void cmCPackWIXGenerator::CreateWiXPropertiesIncludeFile()
     }
 }
 
+void cmCPackWIXGenerator::CreateWiXProductFragmentIncludeFile()
+{
+    std::string includeFilename =
+      this->CPackTopLevel + "/product_fragment.wxi";
+
+    cmWIXSourceWriter includeFile(
+      this->Logger, includeFilename, true);
+
+    this->Patch->ApplyFragment("#PRODUCT", includeFile);
+}
+
 void cmCPackWIXGenerator::CopyDefinition(
   cmWIXSourceWriter &source, std::string const& name)
 {

+ 3 - 1
Source/CPack/WiX/cmCPackWIXGenerator.h

@@ -1,6 +1,6 @@
 /*============================================================================
   CMake - Cross Platform Makefile Generator
-  Copyright 2000-2012 Kitware, Inc.
+  Copyright 2012-2015 Kitware, Inc.
 
   Distributed under the OSI-approved BSD License (the "License");
   see accompanying file Copyright.txt for details.
@@ -76,6 +76,8 @@ private:
 
   void CreateWiXPropertiesIncludeFile();
 
+  void CreateWiXProductFragmentIncludeFile();
+
   void CopyDefinition(
     cmWIXSourceWriter &source, std::string const& name);