diff options
Diffstat (limited to 'packaging/wix/CMakeLists.txt')
-rw-r--r-- | packaging/wix/CMakeLists.txt | 413 |
1 files changed, 413 insertions, 0 deletions
diff --git a/packaging/wix/CMakeLists.txt b/packaging/wix/CMakeLists.txt new file mode 100644 index 0000000000..da152caa53 --- /dev/null +++ b/packaging/wix/CMakeLists.txt @@ -0,0 +1,413 @@ +# CMakeLists.txt +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +# We should use CPack to help generate a .msi using WIX. + +set(WIX_GENERATED_FILES + ${CMAKE_CURRENT_BINARY_DIR}/DependentComponents.wxs + ${CMAKE_CURRENT_BINARY_DIR}/Diameter.wxs + ${CMAKE_CURRENT_BINARY_DIR}/GtkDependentComponents.wxs + ${CMAKE_CURRENT_BINARY_DIR}/QtDependentComponents.wxs + ${CMAKE_CURRENT_BINARY_DIR}/QtTranslation.wxs + ${CMAKE_CURRENT_BINARY_DIR}/RadiusDict.wxs + ${CMAKE_CURRENT_BINARY_DIR}/SNMPMibs.wxs +) +set(WIX_GENERATED_FILES ${WIX_GENERATED_FILES} PARENT_SCOPE) + +set(WIX_SOURCE_FILES + ${CMAKE_SOURCE_DIR}/packaging/wix/Wireshark.wxs + ${CMAKE_SOURCE_DIR}/packaging/wix/WiresharkOptionsDlg.wxs + ${CMAKE_SOURCE_DIR}/packaging/wix/WiresharkWixUI.wxs + ${WIX_GENERATED_FILES} +) +set(WIX_SOURCE_FILES ${WIX_SOURCE_FILES} PARENT_SCOPE) + +set(WIX_FILES + ComponentGroups.wxi + COPYING.rtf + DirectoryStructure.wxi + Features.wxi + InputPaths.wxi + Plugins.wxi + Prerequisites.wxi + UserInterface.wxi + ${WIX_SOURCE_FILES} + PARENT_SCOPE +) + +set(WIX_OUT_FILES + ${CMAKE_CURRENT_BINARY_DIR}/DependentComponents.wixobj + ${CMAKE_CURRENT_BINARY_DIR}/Diameter.wixobj + ${CMAKE_CURRENT_BINARY_DIR}/GtkDependentComponents.wixobj + ${CMAKE_CURRENT_BINARY_DIR}/QtDependentComponents.wixobj + ${CMAKE_CURRENT_BINARY_DIR}/QtTranslation.wixobj + ${CMAKE_CURRENT_BINARY_DIR}/RadiusDict.wixobj + ${CMAKE_CURRENT_BINARY_DIR}/SNMPMibs.wixobj + ${CMAKE_CURRENT_BINARY_DIR}/Wireshark.wixobj + ${CMAKE_CURRENT_BINARY_DIR}/WiresharkOptionsDlg.wixobj + ${CMAKE_CURRENT_BINARY_DIR}/WiresharkWixUI.wixobj +) +set(WIX_OUT_FILES ${WIX_OUT_FILES} PARENT_SCOPE) + +# Variables required for Wireshark.wxs +set(PROGRAM_NAME ${CMAKE_PROJECT_NAME}) +file(TO_NATIVE_PATH "${CMAKE_SOURCE_DIR}" TOP_SRC_DIR) +# STAGING_DIR depends on the build configuration so we pass it +# on the command line below. +file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/docbook" USER_GUIDE_DIR) +if ("${WIRESHARK_TARGET_PLATFORM}" STREQUAL "win32") + set(TARGET_MACHINE x86) +elseif ("${WIRESHARK_TARGET_PLATFORM}" STREQUAL "win64") + set(TARGET_MACHINE x64) +else() + message(FATAL_ERROR "Your mysterious moon-man architecture \"${WIRESHARK_TARGET_PLATFORM}\" frightens and confuses us.") +endif() + +# Path to the WinPcap installer. +# XXX Come up with a better variable, e.g. cache WIRESHARK_LIB_DIR in FindWSWinLibs. +file(TO_NATIVE_PATH "${GLIB2_DLL_DIR}/../.." _wireshark_lib_dir) +set(WIRESHARK_LIB_DIR "${_wireshark_lib_dir}") + +# Must match ${WIRESHARK_LIB_DIR}/WinPcap_X_Y_Z.exe +set(WINPCAP_PACKAGE_VERSION ${WINPCAP_VERSION}) +string(REPLACE "_" "." PCAP_DISPLAY_VERSION "${WINPCAP_PACKAGE_VERSION}") + +set(USBPCAP_DISPLAY_VERSION "1.1.0.0-g794bf26-3") + +set(PRODUCT_VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_PATCH_VERSION}.${PROJECT_BUILD_VERSION}) +# XXX Shouldn't this reflect the API / ABI version? +set(WTAP_VERSION ${PROJECT_VERSION}) + +# To do: +# - Sync the various version names between CMake and Wix. +# - Set CMakeLists.txt version strings in make-version.pl +# - Add a VERSION_EXTRA cmake option +set (VERSION "${PROJECT_VERSION}") +set (PRODUCT_VERSION=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}.${VERSION_BUILD}) + +# Use the merge module that comes with Visual Studio (From MSVC 2013?) +# This is currently hardcoded for MSVC 2013 +set (MSVC_CRT_VERSION "VC120") +set (MSVC_REDIST_DIR "$ENV{PROGRAMFILES}/Common Files/Merge Modules") +message(STATUS "Using ${MSVC_REDIST_DIR}/Microsoft_${MSVC_CRT_VERSION}_CRT_${TARGET_MACHINE}.msm for the installer") + +if(NOT ENABLE_STATIC) + # XXX Replace ENABLE_LIBWIRESHARK with !ENABLE_STATIC everywhere. + set(ENABLE_LIBWIRESHARK "-dENABLE_LIBWIRESHARK") +endif() + +# DependentComponents.wxi. Can be created at configure time. +set(_all_manifest_wix "${CMAKE_CURRENT_BINARY_DIR}/DependentComponents.wxs") +file(WRITE "${_all_manifest_wix}" "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n") +file(APPEND "${_all_manifest_wix}" "<Wix xmlns=\"http://schemas.microsoft.com/wix/2006/wi\">\n\n") +file(APPEND "${_all_manifest_wix}" " <!-- Files required for all sections. Generated by CMake. -->\n") +file(APPEND "${_all_manifest_wix}" "<?include InputPaths.wxi ?>\n") +file(APPEND "${_all_manifest_wix}" " <Fragment>\n") +file(APPEND "${_all_manifest_wix}" " <DirectoryRef Id=\"INSTALLFOLDER\">\n") +SET(unique_component "") +foreach(_dll ${GLIB2_DLLS} ${CARES_DLL} ${GCRYPT_DLLS} ${GEOIP_DLL} + ${GNUTLS_DLLS} ${KERBEROS_DLLS} ${LUA_DLL} ${SMI_DLL} ${LIBSSH_DLL} + ${WINSPARKLE_DLL} ${ZLIB_DLL} + ) + #ensure uniqueness of files + IF(NOT "${unique_component}" MATCHES "(^|;)${_dll}(;|$)") + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_dll}) + file(APPEND "${_all_manifest_wix}" " <Component Id=\"cmp${_wix_name}\" Guid=\"*\">\n") + file(APPEND "${_all_manifest_wix}" " <File Id=\"fil${_wix_name}\" KeyPath=\"yes\" Source=\"$(var.Staging.Dir)\\${_dll}\"/>\n") + file(APPEND "${_all_manifest_wix}" " </Component>\n") + SET(unique_component ${unique_component} ${_dll}) + ENDIF(NOT "${unique_component}" MATCHES "(^|;)${_dll}(;|$)") +endforeach() +file(APPEND "${_all_manifest_wix}" " <Component Id=\"cmpGSpawn_${WIRESHARK_TARGET_PLATFORM}_helper_exe\" Guid=\"*\">\n") +file(APPEND "${_all_manifest_wix}" " <File Id=\"filSpawn_${WIRESHARK_TARGET_PLATFORM}_helper_exe\" KeyPath=\"yes\" Source=\"$(var.Staging.Dir)\\gspawn-${WIRESHARK_TARGET_PLATFORM}-helper.exe\"/>\n") +file(APPEND "${_all_manifest_wix}" " </Component>\n") +file(APPEND "${_all_manifest_wix}" " <Component Id=\"cmpGSpawn_${WIRESHARK_TARGET_PLATFORM}_helper_console_exe\" Guid=\"*\">\n") +file(APPEND "${_all_manifest_wix}" " <File Id=\"filSpawn_${WIRESHARK_TARGET_PLATFORM}_helper_console_exe\" KeyPath=\"yes\" Source=\"$(var.Staging.Dir)\\gspawn-${WIRESHARK_TARGET_PLATFORM}-helper-console.exe\"/>\n") +file(APPEND "${_all_manifest_wix}" " </Component>\n") +foreach(_script "init.lua" "console.lua" "dtd_gen.lua") + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_script}) + file(APPEND "${_all_manifest_wix}" " <Component Id=\"cmp${_wix_name}\" Guid=\"*\">\n") + file(APPEND "${_all_manifest_wix}" " <File Id=\"fil${_wix_name}\" KeyPath=\"yes\" Source=\"$(var.Staging.Dir)\\${_script}\"/>\n") + file(APPEND "${_all_manifest_wix}" " </Component>\n") +endforeach() +file(APPEND "${_all_manifest_wix}" " </DirectoryRef>\n") +file(APPEND "${_all_manifest_wix}" " </Fragment>\n") +file(APPEND "${_all_manifest_wix}" " <Fragment>\n") +file(APPEND "${_all_manifest_wix}" " <ComponentGroup Id=\"CG.RequiredDependencies\">\n") +SET(unique_file "") +foreach(_dll ${GLIB2_DLLS} ${CARES_DLL} ${GCRYPT_DLLS} ${GEOIP_DLL} + ${GNUTLS_DLLS} ${KERBEROS_DLLS} ${LUA_DLL} ${SMI_DLL} + ${WINSPARKLE_DLL} ${ZLIB_DLL} + ) + #ensure uniqueness of files + IF(NOT "${unique_file}" MATCHES "(^|;)${_dll}(;|$)") + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_dll}) + file(APPEND "${_all_manifest_wix}" " <ComponentRef Id=\"cmp${_wix_name}\" />\n") + SET(unique_file ${unique_file} ${_dll}) + ENDIF(NOT "${unique_file}" MATCHES "(^|;)${_dll}(;|$)") +endforeach() +file(APPEND "${_all_manifest_wix}" " <ComponentRef Id=\"cmpGSpawn_${WIRESHARK_TARGET_PLATFORM}_helper_exe\" />\n") +file(APPEND "${_all_manifest_wix}" " <ComponentRef Id=\"cmpGSpawn_${WIRESHARK_TARGET_PLATFORM}_helper_console_exe\" />\n") +foreach(_script "init.lua" "console.lua" "dtd_gen.lua") + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_script}) + file(APPEND "${_all_manifest_wix}" " <ComponentRef Id=\"cmp${_wix_name}\" />\n") +endforeach() +file(APPEND "${_all_manifest_wix}" " </ComponentGroup>\n") +file(APPEND "${_all_manifest_wix}" " </Fragment>\n") +file(APPEND "${_all_manifest_wix}" "\n</Wix>\n") + +# GtkDependentComponents.wxs. Can be created at configure time. +set(_gtk_dll_manifest_wix "${CMAKE_CURRENT_BINARY_DIR}/GtkDependentComponents.wxs") +file(WRITE "${_gtk_dll_manifest_wix}" "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n") +file(APPEND "${_gtk_dll_manifest_wix}" "<Wix xmlns=\"http://schemas.microsoft.com/wix/2006/wi\">\n\n") +if(BUILD_wireshark_gtk AND GTK_FOUND) + file(APPEND "${_gtk_dll_manifest_wix}" " <!-- Files required for the GTK+ section. Generated by CMake. -->\n") + file(APPEND "${_gtk_dll_manifest_wix}" "<?include InputPaths.wxi ?>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <Fragment>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <DirectoryRef Id=\"INSTALLFOLDER\">\n") + foreach(_dll ${GTK2_DLLS} ${GTK3_DLLS}) + IF(NOT "${unique_component}" MATCHES "(^|;)${_dll}(;|$)") + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_dll}) + file(APPEND "${_gtk_dll_manifest_wix}" " <Component Id=\"cmp${_wix_name}\" Guid=\"*\">\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <File Id=\"fil${_wix_name}\" KeyPath=\"yes\" Source=\"$(var.Staging.Dir)\\${_dll}\"/>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Component>\n") + SET(unique_component ${unique_component} ${_dll}) + ENDIF(NOT "${unique_component}" MATCHES "(^|;)${_dll}(;|$)") + endforeach() + file(APPEND "${_gtk_dll_manifest_wix}" " </DirectoryRef>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Fragment>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <Fragment>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <ComponentGroup Id=\"CG.GTKRequiredDependencies\">\n") + foreach(_dll ${GTK2_DLLS} ${GTK3_DLLS}) + IF(NOT "${unique_file}" MATCHES "(^|;)${_dll}(;|$)") + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_dll}) + file(APPEND "${_gtk_dll_manifest_wix}" " <ComponentRef Id=\"cmp${_wix_name}\" />\n") + SET(unique_file ${unique_file} ${_dll}) + ENDIF(NOT "${unique_file}" MATCHES "(^|;)${_dll}(;|$)") + endforeach() + file(APPEND "${_gtk_dll_manifest_wix}" " </ComponentGroup>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Fragment>\n") + + #XXX - May be able to do this with heat.exe, but attaching it to existing GTK dependencies for now + if(GTK2_ETC_DIR) + file(APPEND "${_gtk_dll_manifest_wix}" " <Fragment>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <DirectoryRef Id=\"dirEtcGtk2_0\">\n") + file(GLOB gtk2_etc "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/etc/gtk-2.0/*") + foreach(_file ${gtk2_etc}) + get_filename_component(_gtk_dll ${_file} NAME_WE) + get_filename_component(_gtk_dll_ext ${_file} EXT) + set(_gtk_dll ${_gtk_dll}${_gtk_dll_ext}) + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_gtk_dll}) + file(APPEND "${_gtk_dll_manifest_wix}" " <Component Id=\"cmp${_wix_name}\" Guid=\"*\">\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <File Id=\"fil${_wix_name}\" KeyPath=\"yes\" Source=\"$(var.GTK2_0.Dir)\\${_gtk_dll}\" />\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Component>\n") + endforeach() + file(APPEND "${_gtk_dll_manifest_wix}" " </DirectoryRef>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Fragment>\n") + endif() + if(GTK2_ENGINES_DLL_DIR) + file(APPEND "${_gtk_dll_manifest_wix}" " <Fragment>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <DirectoryRef Id=\"dirLibGtk2_0_2_10_0_engines\">\n") + file(GLOB gtk2_engines "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/lib/gtk-2.0/2.10.0/engines/*") + foreach(_file ${gtk2_engines}) + get_filename_component(_gtk_dll ${_file} NAME_WE) + get_filename_component(_gtk_dll_ext ${_file} EXT) + set(_gtk_dll ${_gtk_dll}${_gtk_dll_ext}) + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_gtk_dll}) + file(APPEND "${_gtk_dll_manifest_wix}" " <Component Id=\"cmp${_wix_name}\" Guid=\"*\">\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <File Id=\"fil${_wix_name}\" KeyPath=\"yes\" Source=\"$(var.Lib_GTK2_0_Engines.Dir)\\${_gtk_dll}\" />\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Component>\n") + endforeach() + file(APPEND "${_gtk_dll_manifest_wix}" " </DirectoryRef>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Fragment>\n") + endif() + file(APPEND "${_gtk_dll_manifest_wix}" " <Fragment>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <DirectoryRef Id=\"dirLibGtk2_0_modules\">\n") + file(GLOB gtk2_modules "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/lib/gtk-2.0/modules/*") + foreach(_file ${gtk2_modules}) + get_filename_component(_gtk_dll ${_file} NAME_WE) + get_filename_component(_gtk_dll_ext ${_file} EXT) + set(_gtk_dll ${_gtk_dll}${_gtk_dll_ext}) + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_gtk_dll}) + file(APPEND "${_gtk_dll_manifest_wix}" " <Component Id=\"cmp${_wix_name}\" Guid=\"*\">\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <File Id=\"fil${_wix_name}\" KeyPath=\"yes\" Source=\"$(var.Lib_GTK2_0_Modules.Dir)\\${_gtk_dll}\" />\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Component>\n") + endforeach() + file(APPEND "${_gtk_dll_manifest_wix}" " </DirectoryRef>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Fragment>\n") + #put the files into a group + file(APPEND "${_gtk_dll_manifest_wix}" " <Fragment>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " <ComponentGroup Id=\"CG.GTKSubdirectory\">\n") + if(GTK2_ETC_DIR) + foreach(_file ${gtk2_etc}) + get_filename_component(_gtk_dll ${_file} NAME_WE) + get_filename_component(_gtk_dll_ext ${_file} EXT) + set(_gtk_dll ${_gtk_dll}${_gtk_dll_ext}) + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_gtk_dll}) + file(APPEND "${_gtk_dll_manifest_wix}" " <ComponentRef Id=\"cmp${_wix_name}\" />\n") + endforeach() + endif() + if(GTK2_ENGINES_DLL_DIR) + foreach(_file ${gtk2_engines}) + get_filename_component(_gtk_dll ${_file} NAME_WE) + get_filename_component(_gtk_dll_ext ${_file} EXT) + set(_gtk_dll ${_gtk_dll}${_gtk_dll_ext}) + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_gtk_dll}) + file(APPEND "${_gtk_dll_manifest_wix}" " <ComponentRef Id=\"cmp${_wix_name}\" />\n") + endforeach() + endif() + foreach(_file ${gtk2_modules}) + get_filename_component(_gtk_dll ${_file} NAME_WE) + get_filename_component(_gtk_dll_ext ${_file} EXT) + set(_gtk_dll ${_gtk_dll}${_gtk_dll_ext}) + STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_gtk_dll}) + file(APPEND "${_gtk_dll_manifest_wix}" " <ComponentRef Id=\"cmp${_wix_name}\" />\n") + endforeach() + file(APPEND "${_gtk_dll_manifest_wix}" " </ComponentGroup>\n") + file(APPEND "${_gtk_dll_manifest_wix}" " </Fragment>\n") + +endif() +file(APPEND "${_gtk_dll_manifest_wix}" "\n</Wix>\n") + +if(BUILD_wireshark_gtk AND GTK_FOUND) + set(use_gtk "-dGTK_DIR") +endif() + +if(SMI_DIR) + set(use_smi "-dSMI_DIR") +endif() + +set(WIX_CANDLE_DEFINES + -sw1076 + -dPlatform=${TARGET_MACHINE} + -dWiresharkName=${CMAKE_PROJECT_NAME} + -dWiresharkVersion=${PRODUCT_VERSION} + -dWiretapVersion=${WTAP_VERSION} + -dEulaDir=${CMAKE_SOURCE_DIR}/packaging/wix + -dBuildOutputDir=${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE} + -dVCRedistVersion=${MSVC_CRT_VERSION} + -dVCRedistDir=${MSVC_REDIST_DIR} + -dSnmpMibDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/snmp/mibs + -dRadiusDictDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/radius + -dDiameterDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/diameter + -dQtTranslationDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/translations + ${use_gtk} + ${use_smi} + ${ENABLE_LIBWIRESHARK} + -arch ${TARGET_MACHINE} + -ext WixUIExtension + -I${CMAKE_SOURCE_DIR}/packaging/wix + -out ${CMAKE_CURRENT_BINARY_DIR}/ + PARENT_SCOPE +) + +set(WIX_LIGHT_DEFINES + -out ${CMAKE_CURRENT_BINARY_DIR}/Wireshark.msi + -sw1076 + -ext WixUIExtension + PARENT_SCOPE +) + +set(WIX_HEAT_FLAGS + -ag + -nologo + -srd + -sreg + PARENT_SCOPE +) + +macro( ADD_WIX_PACKAGE_TARGET ) + set (_wix_source_dir ${CMAKE_SOURCE_DIR}/packaging/wix ) + set (_wix_binary_dir ${CMAKE_BINARY_DIR}/packaging/wix ) + + # QtDependentComponents.wxs. Created using Wireshark.exe. + add_custom_command(OUTPUT ${_wix_binary_dir}/QtDependentComponents.wxs + COMMAND set "PATH=%PATH%;${QT_BIN_PATH}" + COMMAND ${POWERSHELL_COMMAND} "${_wix_source_dir}/windeployqt-to-wix.ps1" + -Executable $<TARGET_FILE:wireshark> + -FilePath ${_wix_binary_dir}/QtDependentComponents.wxs + ) + + # SNMPMibs.wxs. Collects all MIBs in "output" snmp/mibs directory. Generated with heat.exe + add_custom_command(OUTPUT ${_wix_binary_dir}/SNMPMibs.wxs + COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/snmp/mibs + ${WIX_HEAT_FLAGS} -cg CG.Plugins.SNMP -dr dirSnmpMibs -var var.SnmpMibDir + -out ${_wix_binary_dir}/SNMPMibs.wxs + ) + + # RadiusDict.wxs. Collects all Radius dictionary files in "output" radius directory. Generated with heat.exe + add_custom_command(OUTPUT ${_wix_binary_dir}/RadiusDict.wxs + COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/radius + ${WIX_HEAT_FLAGS} -cg CG.RadiusDict -dr dirRadius -var var.RadiusDictDir + -out ${_wix_binary_dir}/RadiusDict.wxs + ) + + # Diameter.wxs. Collects all Diameter XML dictionary files in "output" diameter directory. Generated with heat.exe + add_custom_command(OUTPUT ${_wix_binary_dir}/Diameter.wxs + COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/diameter + ${WIX_HEAT_FLAGS} -cg CG.Diameter -dr dirDiameter -var var.DiameterDir + -out ${_wix_binary_dir}/Diameter.wxs + ) + + # QtTranslation.wxs. Collects all Qt translation files in "output" translations directory. Generated with heat.exe + add_custom_command(OUTPUT ${_wix_binary_dir}/QtTranslation.wxs + COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/translations + ${WIX_HEAT_FLAGS} -cg CG.QtTranslations -dr dirTranslations -var var.QtTranslationDir + -out ${_wix_binary_dir}/QtTranslation.wxs + ) + + # Build WiX package dependencies. We build the package in two stages + # so that wix_package below doesn't trigger any dependencies that + # might clobber any signed executables. + add_custom_target(wix_package_prep + DEPENDS + ${WIX_FILES} + copy_data_files + user_guides + ${CMAKE_BINARY_DIR}/docbook/user-guide.chm + ) + set_target_properties(wix_package_prep PROPERTIES FOLDER "Packaging") + + # Dump the installer into ${CMAKE_CURRENT_SOURCE_DIR}/packaging/wix to match + # the NMake environment for now. + # Note that executables and DLLs *must* be built separately + add_custom_target(wix_package + COMMAND ${WIX_CANDLE_EXECUTABLE} ${WIX_CANDLE_DEFINES} ${WIX_SOURCE_FILES} + WORKING_DIRECTORY ${_wix_source_dir} + + COMMAND ${WIX_LIGHT_EXECUTABLE} ${WIX_LIGHT_DEFINES} ${WIX_OUT_FILES} + WORKING_DIRECTORY ${_wix_binary_dir} + ) + set_target_properties(wix_package PROPERTIES FOLDER "Packaging") +endmacro( ADD_WIX_PACKAGE_TARGET ) + +set(CLEAN_FILES + DependentComponents.wxs + GtkDependentComponents.wxs + QtDependentComponents.wxs + SNMPMibs.wxs + RadiusDict.wxs + Diameter.wxs + QtTranslation.wxs + #NEWS.txt + #user-guide.chm + wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe +) |