summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam J. Weigold <adam@adamweigold.com>2013-07-02 22:19:31 (GMT)
committerBrad King <brad.king@kitware.com>2013-07-19 18:50:43 (GMT)
commitbf23891942d95a4075f349f6c4043647d47e546b (patch)
tree59eedb382ab389554848e8e06646ca3f92c2100e
parent155bb01bd5126f36066653a209a3209f6363a7cd (diff)
downloadCMake-bf23891942d95a4075f349f6c4043647d47e546b.zip
CMake-bf23891942d95a4075f349f6c4043647d47e546b.tar.gz
CMake-bf23891942d95a4075f349f6c4043647d47e546b.tar.bz2
CPackWIX: Add support for custom WiX templates
WiX provides a lot of functionality for installers that cannot be supported (easily) in the default WIX.template.in file. For most users, the default template should be fine. However if users want to produce merge modules, include custom actions, etc, this new option allows for a hook into how the wxs is produced.
-rw-r--r--Modules/CPackWIX.cmake9
-rw-r--r--Source/CPack/WiX/cmCPackWIXGenerator.cxx4
2 files changed, 13 insertions, 0 deletions
diff --git a/Modules/CPackWIX.cmake b/Modules/CPackWIX.cmake
index 4f57efa..fce25f0 100644
--- a/Modules/CPackWIX.cmake
+++ b/Modules/CPackWIX.cmake
@@ -93,6 +93,15 @@
# http://wix.sourceforge.net/manual-wix3/WixUI_localization.htm
#
##end
+##variable
+# CPACK_WIX_TEMPLATE - Template file for WiX generation
+#
+# If this variable is set, the specified template will be used to generate the WiX wxs file.
+# This should be used if further customization of the output is required.
+#
+# If this variable is not set, the default MSI template included with CMake will be used.
+#
+##end
#=============================================================================
# Copyright 2012 Kitware, Inc.
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
index 373a14d..cc9dec7 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx
+++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
@@ -451,6 +451,10 @@ bool cmCPackWIXGenerator::CreateWiXSourceFiles()
directoryDefinitions.EndElement();
std::string wixTemplate = FindTemplate("WIX.template.in");
+ if(GetOption("CPACK_WIX_TEMPLATE") != 0)
+ {
+ wixTemplate = GetOption("CPACK_WIX_TEMPLATE");
+ }
if(wixTemplate.empty())
{
cmCPackLogger(cmCPackLog::LOG_ERROR,