From bf17a8248c58e9f52f509d3e6010ee614b81194d Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Fri, 1 Mar 2024 10:51:49 +0200 Subject: [PATCH] Wix 4.0 support (#86) IB-7780 Signed-off-by: Raul Metsma --- .github/workflows/build.yml | 6 +- CMakeLists.txt | 24 ++++-- cmake | 2 +- idupdater.wxs | 163 ++++++++++++++++-------------------- 4 files changed, 94 insertions(+), 101 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 44a7774..ecb53c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,7 +19,7 @@ jobs: cmake -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -S . -B build cmake --build build --target pkgbuild - name: Archive artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg path: build/*.pkg @@ -57,6 +57,10 @@ jobs: uses: ilammy/msvc-dev-cmd@v1 with: arch: x64 + - name: Install WiX + run: | + dotnet tool install --global wix + wix extension -g add WixToolset.UI.wixext - name: Build run: | cmake -S . -B build ` diff --git a/CMakeLists.txt b/CMakeLists.txt index 4909e44..fd2e404 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,15 +148,21 @@ else() get_target_property(qtCore_install_prefix Qt6::qmake IMPORTED_LOCATION) get_filename_component(qtCore_install_prefix ${qtCore_install_prefix} DIRECTORY) add_custom_target(installer DEPENDS ${PROJECT_NAME} - COMMAND "$ENV{WIX}bin\\candle.exe" -nologo -arch ${PLATFORM} - -dMSI_VERSION=${VERSION} -dqt_path=${qtCore_install_prefix} - -dqt_suffix=$<$:d> -dlibs_path="${SSL_PATH}" - -dupdater_path=$ ${CMAKE_SOURCE_DIR}/idupdater.wxs - ${CMAKE_SOURCE_DIR}/cmake/modules/WelcomeDlg2.wxs ${CMAKE_SOURCE_DIR}/cmake/modules/WixUI_Minimal2.wxs - COMMAND "$ENV{WIX}bin\\light.exe" -nologo -o "${MSI_FILE}.msi" -ext WixUIExtension - idupdater.wixobj WelcomeDlg2.wixobj WixUI_Minimal2.wixobj - -dWixUIDialogBmp=${CMAKE_SOURCE_DIR}/cmake/modules/dlgbmp.bmp - -dWixUIBannerBmp=${CMAKE_SOURCE_DIR}/cmake/modules/banner.bmp + COMMAND "wix.exe" build -nologo + -arch ${PLATFORM} + -ext WixToolset.UI.wixext + -bv WixUIDialogBmp=${CMAKE_SOURCE_DIR}/cmake/modules/dlgbmp.bmp + -bv WixUIBannerBmp=${CMAKE_SOURCE_DIR}/cmake/modules/banner.bmp + -d MSI_VERSION=${VERSION} + -d appicon=${CMAKE_SOURCE_DIR}/appicon.ico + -d qt_path=${qtCore_install_prefix} + -d qt_suffix=$<$:d> + -d libs_path="${SSL_PATH}" + -d updater_path=$ + ${CMAKE_SOURCE_DIR}/idupdater.wxs + ${CMAKE_SOURCE_DIR}/cmake/modules/WelcomeDlg.wxs + ${CMAKE_SOURCE_DIR}/cmake/modules/WixUI_Minimal.wxs + -o "${MSI_FILE}.msi" ) if(SIGNCERT) if(CROSSSIGNCERT) diff --git a/cmake b/cmake index 712a5c2..da3cafb 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit 712a5c2828c01282150b657ff6932cc32fc17947 +Subproject commit da3cafb0712eac8fbfddd7d37343016430b65b44 diff --git a/idupdater.wxs b/idupdater.wxs index 41e5913..b094d28 100644 --- a/idupdater.wxs +++ b/idupdater.wxs @@ -1,21 +1,8 @@ - - - - - - + - - + - + @@ -25,83 +12,79 @@ - + - + - - - - - - - + + + + + + + - - = 601)]]> - - + "A newer version of [ProductName] is already installed. If you are trying to downgrade, please uninstall the newer version first." /> + + - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -113,14 +96,14 @@ - - + + - (NOT Installed) AND (AUTO_UPDATE = 1) - REMOVE="ALL" + + - +