summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNils Gladitz <nilsgladitz@gmail.com>2015-02-13 10:57:20 (GMT)
committerNils Gladitz <nilsgladitz@gmail.com>2015-02-13 11:09:40 (GMT)
commita2ccbffd8b4191f7b8b888fafde85eb5e7dbb2e4 (patch)
treee4a35e7260aebc98994b433362342a96a494bd8d
parent8d38ff05e2db3f3bd907f5a3c279fd116010e775 (diff)
downloadCMake-a2ccbffd8b4191f7b8b888fafde85eb5e7dbb2e4.zip
CMake-a2ccbffd8b4191f7b8b888fafde85eb5e7dbb2e4.tar.gz
CMake-a2ccbffd8b4191f7b8b888fafde85eb5e7dbb2e4.tar.bz2
CPackWIX: Extend the patching mechanism to allow adding content to <Product>.
-rw-r--r--Modules/CPackWIX.cmake5
-rw-r--r--Modules/WIX.template.in1
-rw-r--r--Source/CPack/WiX/cmCPackWIXGenerator.cxx14
-rw-r--r--Source/CPack/WiX/cmCPackWIXGenerator.h4
4 files changed, 21 insertions, 3 deletions
diff --git a/Modules/CPackWIX.cmake b/Modules/CPackWIX.cmake
index 0a47e19..105df96 100644
--- a/Modules/CPackWIX.cmake
+++ b/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.
diff --git a/Modules/WIX.template.in b/Modules/WIX.template.in
index bbb7c88..c4fc83a 100644
--- a/Modules/WIX.template.in
+++ b/Modules/WIX.template.in
@@ -42,5 +42,6 @@
<UIRef Id="$(var.CPACK_WIX_UI_REF)" />
<?include "properties.wxi"?>
+ <?include "product_fragment.wxi"?>
</Product>
</Wix>
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
index 59c38e9..11d5437 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx
+++ b/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)
{
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.h b/Source/CPack/WiX/cmCPackWIXGenerator.h
index 8705d40..7035297 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.h
+++ b/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);