aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/wix/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/wix/CMakeLists.txt')
-rw-r--r--packaging/wix/CMakeLists.txt103
1 files changed, 43 insertions, 60 deletions
diff --git a/packaging/wix/CMakeLists.txt b/packaging/wix/CMakeLists.txt
index 5988b279af..25f5dbc967 100644
--- a/packaging/wix/CMakeLists.txt
+++ b/packaging/wix/CMakeLists.txt
@@ -61,25 +61,19 @@ 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" DOCBOOK_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()
-
-set(PRODUCT_VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_PATCH_VERSION}.${PROJECT_BUILD_VERSION})
+file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/doc" DOC_DIR)
# To do:
# - Sync the various version names between CMake and Wix.
-# - Set CMakeLists.txt version strings in tools/make-version.pl
+# - Set CMakeLists.txt version strings in tools/make-version.py
# - Add a VERSION_EXTRA cmake option
set (VERSION "${PROJECT_VERSION}")
-set (PRODUCT_VERSION=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}.${VERSION_BUILD})
+set(PRODUCT_VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_PATCH_VERSION}.${PROJECT_BUILD_VERSION})
# Use the merge module that comes with our version of Visual Studio
-if(MSVC_VERSION GREATER_EQUAL 1920)
+if(MSVC_VERSION GREATER_EQUAL 1930)
+ set (MSVC_CRT_VERSION "VC143")
+elseif(MSVC_VERSION GREATER_EQUAL 1920)
set (MSVC_CRT_VERSION "VC142")
elseif(MSVC_VERSION GREATER_EQUAL 1910)
set (MSVC_CRT_VERSION "VC141")
@@ -90,7 +84,7 @@ endif()
# Starting with Visual Studio 2019 merge modules are deprecated but
# are available as an individual component.
# https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes#-deprecations
-set(MERGE_MODULE "Microsoft_${MSVC_CRT_VERSION}_CRT_${TARGET_MACHINE}.msm")
+set(MERGE_MODULE "Microsoft_${MSVC_CRT_VERSION}_CRT_${WIRESHARK_TARGET_PLATFORM}.msm")
set (PF86_ENV "ProgramFiles(x86)")
set(VC_TOOLS_MERGE_MODULES_DIR)
@@ -106,7 +100,7 @@ find_path(MERGE_MODULE_DIR ${MERGE_MODULE}
"$ENV{PROGRAMFILES}/Common Files/Merge Modules"
NO_DEFAULT_PATH
)
-file(TO_NATIVE_PATH "${MERGE_MODULE_DIR}/Microsoft_${MSVC_CRT_VERSION}_CRT_${TARGET_MACHINE}.msm" MSM_NATIVE_PATH)
+file(TO_NATIVE_PATH "${MERGE_MODULE_DIR}/Microsoft_${MSVC_CRT_VERSION}_CRT_${WIRESHARK_TARGET_PLATFORM}.msm" MSM_NATIVE_PATH)
message(STATUS "Using ${MSM_NATIVE_PATH} for the WiX installer")
# DependentComponents.wxi. Can be created at configure time.
@@ -133,14 +127,16 @@ foreach(_dll ${GLIB2_DLLS_RELEASE})
endforeach()
file(APPEND "${_all_manifest_wix}" " <?endif?>\n")
SET(unique_component "")
-foreach(_dll ${CARES_DLL} ${GCRYPT_DLLS}
- ${GNUTLS_DLLS} ${KERBEROS_DLLS} ${LIBSSH_DLLS} ${LUA_DLL}
- ${LZ4_DLL} ${NGHTTP2_DLL} ${SBC_DLL} ${SMI_DLL} ${SNAPPY_DLL}
- ${SPANDSP_DLL} ${BCG729_DLL} ${LIBXML2_DLLS} ${WINSPARKLE_DLL}
- ${ZLIB_DLL} ${BROTLI_DLLS} ${ZSTD_DLL} ${ILBC_DLL} ${OPUS_DLL}
- # Required for mmdbresolve
- ${MAXMINDDB_DLL}
+set (_dll_list ${CARES_DLL} ${PCRE2_RELEASE_DLL} ${GCRYPT_DLLS}
+ ${GNUTLS_DLLS} ${KERBEROS_DLLS} ${LIBSSH_DLLS} ${LUA_DLL}
+ ${LZ4_DLL} ${MINIZIP_DLL} ${NGHTTP2_DLL} ${NGHTTP3_DLL} ${SBC_DLL} ${SMI_DLL}
+ ${SNAPPY_DLL} ${SPANDSP_DLL} ${BCG729_DLL} ${LIBXML2_DLLS} ${WINSPARKLE_DLL}
+ ${ZLIB_DLL} ${BROTLI_DLLS} ${ZSTD_DLL} ${ILBC_DLL} ${OPUS_DLL}
+ ${SPEEXDSP_DLL}
+ # Required for mmdbresolve
+ ${MAXMINDDB_DLL}
)
+foreach(_dll ${_dll_list})
#ensure uniqueness of files
IF(NOT "${unique_component}" MATCHES "(^|;)${_dll}(;|$)")
STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_dll})
@@ -150,12 +146,6 @@ foreach(_dll ${CARES_DLL} ${GCRYPT_DLLS}
SET(unique_component ${unique_component} ${_dll})
ENDIF(NOT "${unique_component}" MATCHES "(^|;)${_dll}(;|$)")
endforeach()
-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")
@@ -172,14 +162,7 @@ foreach(_dll ${GLIB2_DLLS_RELEASE})
endforeach()
file(APPEND "${_all_manifest_wix}" " <?endif?>\n")
SET(unique_file "")
-foreach(_dll ${CARES_DLL} ${GCRYPT_DLLS}
- ${GNUTLS_DLLS} ${KERBEROS_DLLS} ${LIBSSH_DLLS} ${LUA_DLL}
- ${LZ4_DLL} ${NGHTTP2_DLL} ${SBC_DLL} ${SMI_DLL} ${SNAPPY_DLL}
- ${SPANDSP_DLL} ${BCG729_DLL} ${LIBXML2_DLLS} ${WINSPARKLE_DLL}
- ${ZLIB_DLL} ${BROTLI_DLLS} ${ZSTD_DLL} ${ILBC_DLL} ${OPUS_DLL}
- # mmdbresolve
- ${MAXMINDDB_DLL}
- )
+foreach(_dll ${_dll_list})
#ensure uniqueness of files
IF(NOT "${unique_file}" MATCHES "(^|;)${_dll}(;|$)")
STRING(REGEX REPLACE "[-|\\.]" "_" _wix_name ${_dll})
@@ -187,15 +170,10 @@ foreach(_dll ${CARES_DLL} ${GCRYPT_DLLS}
SET(unique_file ${unique_file} ${_dll})
ENDIF(NOT "${unique_file}" MATCHES "(^|;)${_dll}(;|$)")
endforeach()
-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")
-
if(SMI_DIR)
set(d_smi_dir "-dSMI_DIR")
endif()
@@ -207,24 +185,27 @@ endif()
set(WIX_CANDLE_DEFINES
-v
-sw1076
- -dPlatform=${TARGET_MACHINE}
+ -dPlatform=${WIRESHARK_TARGET_PLATFORM}
-dWiresharkName=${CMAKE_PROJECT_NAME}
-dWiresharkVersion=${PRODUCT_VERSION}
-dWiresharkMajorVersion=${PROJECT_MAJOR_VERSION}
-dWiresharkMinorVersion=${PROJECT_MINOR_VERSION}
+ -dWiresharkAbiVersionEpan=${PROJECT_ABI_VERSION_EPAN}
+ -dWiresharkAbiVersionWtap=${PROJECT_ABI_VERSION_WIRETAP}
+ -dWiresharkAbiVersionCodec=${PROJECT_ABI_VERSION_CODEC}
-dAssetDir=${CMAKE_SOURCE_DIR}/packaging/wix
- -dBuildOutputDir=${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}
- -dDiameterDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/diameter
- -dIconDir=${CMAKE_SOURCE_DIR}/image
- -dQtTranslationDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/translations
- -dRadiusDictDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/radius
- -dSnmpMibDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/snmp/mibs
- -dUsersGuideDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/docbook/wsug_html_chunked
+ -dBuildOutputDir=${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}
+ -dDiameterDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/diameter
+ -dIconDir=${CMAKE_SOURCE_DIR}/resources/icons
+ -dQtTranslationDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/translations
+ -dRadiusDictDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/radius
+ -dSnmpMibDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/snmp/mibs
+ -dUsersGuideDir=${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/docbook/wsug_html_chunked
-dVCRedistVersion=${MSVC_CRT_VERSION}
-dVCRedistDir=${MERGE_MODULE_DIR}
${d_smi_dir}
${d_mmdbresolve_exe}
- -arch ${TARGET_MACHINE}
+ -arch ${WIRESHARK_TARGET_PLATFORM}
-ext WixUIExtension
-I${CMAKE_SOURCE_DIR}/packaging/wix
-out ${CMAKE_CURRENT_BINARY_DIR}/
@@ -234,7 +215,7 @@ set(WIX_CANDLE_DEFINES
# The NSIS CMakeFile sets the program name + version slightly differently.
set(WIX_LIGHT_DEFINES
-v
- -out ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}-${WIRESHARK_TARGET_PLATFORM}-${PROJECT_VERSION}.msi
+ -out ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-${WIRESHARK_TARGET_PLATFORM}.msi
-sw1076
-ext WixUIExtension
-loc ${CMAKE_CURRENT_SOURCE_DIR}/StringOverrides.wxl
@@ -283,7 +264,7 @@ macro( ADD_WIX_PACKAGE_TARGET )
# 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
+ COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/snmp/mibs
${WIX_HEAT_FLAGS} -cg CG.Plugins.SNMP -dr dirSnmpMibs -var var.SnmpMibDir
-out ${_wix_binary_dir}/SNMPMibs.wxs
)
@@ -291,7 +272,7 @@ macro( ADD_WIX_PACKAGE_TARGET )
# 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
+ COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/radius
${WIX_HEAT_FLAGS} -cg CG.RadiusDict -dr dirRadius -var var.RadiusDictDir
-out ${_wix_binary_dir}/RadiusDict.wxs
)
@@ -299,7 +280,7 @@ macro( ADD_WIX_PACKAGE_TARGET )
# 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
+ COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/diameter
${WIX_HEAT_FLAGS} -cg CG.Diameter -dr dirDiameter -var var.DiameterDir
-out ${_wix_binary_dir}/Diameter.wxs
)
@@ -307,22 +288,23 @@ macro( ADD_WIX_PACKAGE_TARGET )
# 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
+ COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/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
+ # two stages so that wireshark_wix below doesn't trigger any
# dependencies that might clobber any signed executables.
- add_custom_target(wix_package_prep
+ # XXX Rename this to wireshark_wix_prep
+ add_custom_target(wireshark_wix_prep
DEPENDS
${WIX_FILES}
copy_data_files
user_guide_html
faq_html
)
- set_target_properties(wix_package_prep PROPERTIES
+ set_target_properties(wireshark_wix_prep PROPERTIES
FOLDER "Packaging"
EXCLUDE_FROM_DEFAULT_BUILD True
)
@@ -330,7 +312,8 @@ macro( ADD_WIX_PACKAGE_TARGET )
# Dump the installer into
# ${CMAKE_CURRENT_SOURCE_DIR}/packaging/wix
# Note that executables and DLLs *must* be built separately
- add_custom_target(wix_package
+ # XXX Rename this to wireshark_wix
+ add_custom_target(wireshark_wix
COMMAND ${WIX_CANDLE_EXECUTABLE} ${WIX_CANDLE_DEFINES}
$<$<CONFIG:Debug>:-dBUNDLE_DEBUG_DLLS>
${WIX_SOURCE_FILES}
@@ -339,7 +322,7 @@ macro( ADD_WIX_PACKAGE_TARGET )
COMMAND ${WIX_LIGHT_EXECUTABLE} ${WIX_LIGHT_DEFINES} ${WIX_OUT_FILES}
WORKING_DIRECTORY ${_wix_binary_dir}
)
- set_target_properties(wix_package PROPERTIES
+ set_target_properties(wireshark_wix PROPERTIES
FOLDER "Packaging"
EXCLUDE_FROM_DEFAULT_BUILD True
)
@@ -358,5 +341,5 @@ set(CLEAN_FILES
QtTranslation.wxs
#NEWS.txt
#user-guide.chm
- wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe
+ wireshark-${VERSION}-${WIRESHARK_TARGET_PLATFORM}.msi
)