From bf23891942d95a4075f349f6c4043647d47e546b Mon Sep 17 00:00:00 2001 From: "Adam J. Weigold" Date: Tue, 2 Jul 2013 17:19:31 -0500 Subject: 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. --- Modules/CPackWIX.cmake | 9 +++++++++ Source/CPack/WiX/cmCPackWIXGenerator.cxx | 4 ++++ 2 files changed, 13 insertions(+) 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, -- cgit v0.12