From: Michael Schuster Date: Sat, 5 Sep 2020 05:35:53 +0000 (+0200) Subject: Windows MSI: Add MSI scripts and UI resources X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~22^2~153^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a9014f9852a8df1042ec086e10f46d963d10c6af;p=nextcloud-desktop.git Windows MSI: Add MSI scripts and UI resources Uses CMake to generate and install all required files in the "msi/" directory. Signed-off-by: Michael Schuster --- diff --git a/admin/win/msi/CMakeLists.txt b/admin/win/msi/CMakeLists.txt new file mode 100644 index 000000000..8d7597cb3 --- /dev/null +++ b/admin/win/msi/CMakeLists.txt @@ -0,0 +1,25 @@ +if(CMAKE_SIZEOF_VOID_P MATCHES 4) + set(MSI_BUILD_ARCH x86) +else() + set(MSI_BUILD_ARCH x64) +endif() + +string(SUBSTRING ${GIT_SHA1} 0 7 GIT_REVISION) + +set(VERSION "${MIRALL_VERSION_MAJOR}.${MIRALL_VERSION_MINOR}.${MIRALL_VERSION_PATCH}.${MIRALL_VERSION_BUILD}") + +set(MSI_INSTALLER_FILENAME "${APPLICATION_SHORTNAME}-${VERSION}-${MSI_BUILD_ARCH}.msi") + +configure_file(OEM.wxi.in ${CMAKE_CURRENT_BINARY_DIR}/OEM.wxi) +configure_file(collect-transform.xsl.in ${CMAKE_CURRENT_BINARY_DIR}/collect-transform.xsl) +configure_file(make-msi.bat.in ${CMAKE_CURRENT_BINARY_DIR}/make-msi.bat) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/OEM.wxi + ${CMAKE_CURRENT_BINARY_DIR}/collect-transform.xsl + ${CMAKE_CURRENT_BINARY_DIR}/make-msi.bat + Platform.wxi + Nextcloud.wxs + gui/banner.bmp + gui/dialog.bmp + DESTINATION msi/) diff --git a/admin/win/msi/Nextcloud.wxs b/admin/win/msi/Nextcloud.wxs new file mode 100644 index 000000000..7e8406d32 --- /dev/null +++ b/admin/win/msi/Nextcloud.wxs @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSIS_UNINSTALLEXE AND NOT Installed + + + (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL") + + + NOT (DO_NOT_SCHEDULE_REBOOT=1) + + + + $(var.AppIcon) + $(var.AppHelpLink) + $(var.AppInfoLink) + + + + + + + + + + + + + + + + + + + + + + + + 1 + + 1 + + + WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed + + Removing previous installation + Trying to terminate application process of previous installation + Removing sync folders from Explorer's Navigation Pane + + + + + + + NOT (LAUNCH=0) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (NO_SHELL_EXTENSIONS=1) + + + + + (NO_START_MENU_SHORTCUTS=1) + + + + + (NO_DESKTOP_SHORTCUT=1) + + + + + diff --git a/admin/win/msi/OEM.wxi.in b/admin/win/msi/OEM.wxi.in new file mode 100644 index 000000000..d3f1787b9 --- /dev/null +++ b/admin/win/msi/OEM.wxi.in @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/admin/win/msi/Platform.wxi b/admin/win/msi/Platform.wxi new file mode 100644 index 000000000..9eb7369a9 --- /dev/null +++ b/admin/win/msi/Platform.wxi @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + diff --git a/admin/win/msi/collect-transform.xsl.in b/admin/win/msi/collect-transform.xsl.in new file mode 100644 index 000000000..475788d83 --- /dev/null +++ b/admin/win/msi/collect-transform.xsl.in @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + MainExecutable + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/admin/win/msi/gui/banner.bmp b/admin/win/msi/gui/banner.bmp new file mode 100644 index 000000000..7eba2ce1a Binary files /dev/null and b/admin/win/msi/gui/banner.bmp differ diff --git a/admin/win/msi/gui/banner.svg b/admin/win/msi/gui/banner.svg new file mode 100644 index 000000000..0739c16bf --- /dev/null +++ b/admin/win/msi/gui/banner.svg @@ -0,0 +1,72 @@ + +image/svg+xml diff --git a/admin/win/msi/gui/dialog.bmp b/admin/win/msi/gui/dialog.bmp new file mode 100644 index 000000000..f54894159 Binary files /dev/null and b/admin/win/msi/gui/dialog.bmp differ diff --git a/admin/win/msi/make-msi.bat.in b/admin/win/msi/make-msi.bat.in new file mode 100644 index 000000000..a8c5d4946 --- /dev/null +++ b/admin/win/msi/make-msi.bat.in @@ -0,0 +1,26 @@ +@echo off +set HarvestAppDir=%~1 +set BuildArch=@MSI_BUILD_ARCH@ + +if "%HarvestAppDir%" == "" ( + echo "Missing parameter: Please specify file collection source path (HarvestAppDir)." + exit 1 +) + +if "%WIX%" == "" ( + echo "WiX Toolset path not set (environment variable 'WIX'). Please install the WiX Toolset." + exit 1 +) + +Rem Generate collect.wxs +"%WIX%\bin\heat.exe" dir "%HarvestAppDir%" -dr INSTALLDIR -sreg -srd -sfrag -ag -cg ClientFiles -var var.HarvestAppDir -platform='%BuildArch%' -t collect-transform.xsl -out collect.wxs +if %ERRORLEVEL% neq 0 exit %ERRORLEVEL% + +Rem Compile en-US (https://www.firegiant.com/wix/tutorial/transforms/morphing-installers/) +"%WIX%\bin\candle.exe" -dcodepage=1252 -dPlatform=%BuildArch% -arch %BuildArch% -dHarvestAppDir="%HarvestAppDir%" -ext WixUtilExtension NCMsiHelper.wxs WinShellExt.wxs collect.wxs Nextcloud.wxs +if %ERRORLEVEL% neq 0 exit %ERRORLEVEL% + +Rem Link MSI package +"%WIX%\bin\light.exe" -sw1076 -ext WixUIExtension -ext WixUtilExtension -cultures:en-us NCMsiHelper.wixobj WinShellExt.wixobj collect.wixobj Nextcloud.wixobj -out "@MSI_INSTALLER_FILENAME@" + +exit %ERRORLEVEL%