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 "