diff --git a/share/windows/wix-banner.bmp b/share/windows/wix-banner.bmp
new file mode 100644
index 00000000..14a13b8f
Binary files /dev/null and b/share/windows/wix-banner.bmp differ
diff --git a/share/windows/wix-dialog.bmp b/share/windows/wix-dialog.bmp
new file mode 100644
index 00000000..b26ad1e2
Binary files /dev/null and b/share/windows/wix-dialog.bmp differ
diff --git a/share/windows/wix-patch.xml b/share/windows/wix-patch.xml
new file mode 100644
index 00000000..1c1d222a
--- /dev/null
+++ b/share/windows/wix-patch.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/share/windows/wix-template.xml b/share/windows/wix-template.xml
new file mode 100644
index 00000000..1e47029e
--- /dev/null
+++ b/share/windows/wix-template.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ProductIcon.ico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 97ff5edf..ca918971 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -299,14 +299,21 @@ if(MINGW)
set(OUTPUT_FILE_POSTFIX "Win32")
endif()
- set(CPACK_GENERATOR "ZIP;NSIS")
+ # We have to copy the license file in the configuration phase.
+ # CMake checks that CPACK_RESOURCE_FILE_LICENSE actually exists and
+ # we have to copy it because WiX needs it to have a .txt extension.
+ execute_process(COMMAND ${CMAKE_COMMAND} -E copy
+ "${CMAKE_SOURCE_DIR}/LICENSE.GPL-2"
+ "${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt")
+
+ set(CPACK_GENERATOR "ZIP;NSIS;WIX")
set(CPACK_STRIP_FILES ON)
set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}-${OUTPUT_FILE_POSTFIX}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROGNAME})
set(CPACK_PACKAGE_VERSION ${KEEPASSXC_VERSION})
set(CPACK_PACKAGE_VENDOR "${PROGNAME} Team")
string(REGEX REPLACE "/" "\\\\\\\\" CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/share/windows/installer-header.bmp")
- set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.GPL-2")
+ set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/INSTALLER_LICENSE.txt")
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico")
set(CPACK_NSIS_MUI_UNIICON "${CPACK_NSIS_MUI_ICON}")
@@ -319,6 +326,13 @@ if(MINGW)
set(CPACK_NSIS_DISPLAY_NAME ${PROGNAME})
set(CPACK_NSIS_PACKAGE_NAME "${PROGNAME} v${KEEPASSXC_VERSION}")
set(CPACK_NSIS_MUI_FINISHPAGE_RUN "../${PROGNAME}.exe")
+ set(CPACK_WIX_UPGRADE_GUID 88785A72-3EAE-4F29-89E3-BC6B19BA9A5B)
+ set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/share/windows/keepassxc.ico")
+ set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/share/windows/wix-banner.bmp")
+ set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/share/windows/wix-dialog.bmp")
+ set(CPACK_WIX_TEMPLATE "${CMAKE_SOURCE_DIR}/share/windows/wix-template.xml")
+ set(CPACK_WIX_PATCH_FILE "${CMAKE_SOURCE_DIR}/share/windows/wix-patch.xml")
+ set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "https://keepassxc.org")
include(CPack)
install(CODE "