Add Windows ARM build (#3112)

Unimplemented:

- ARM-native installer/uninstaller

Untested:

- Installer/uninstaller/updater
- Word integration DLL

Also updates the launcher and updater to 115.9.0esr for x64. win32 stays
on 115.4.0esr for the launcher and 102.11.0esr for the updater because I
can no longer build it.
This commit is contained in:
Dan Stillman 2024-04-06 04:50:04 -04:00
parent 78c0a3d050
commit bcf8d72b0b
5 changed files with 24 additions and 8 deletions

View file

@ -638,7 +638,7 @@ if [ $BUILD_WIN == 1 ]; then
fi
for arch in "win32" "win-x64"; do
for arch in win32 win-x64 win-aarch64; do
echo "Building Zotero_$arch"
runtime_path="${WIN_RUNTIME_PATH_PREFIX}${arch}"
@ -715,10 +715,16 @@ if [ $BUILD_WIN == 1 ]; then
cp -RH "$CALLDIR/modules/zotero-word-for-windows-integration/install" "$APPDIR/integration/word-for-windows"
if [ $arch = 'win32' ]; then
rm "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_x64.dll"
rm "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_ARM64.dll"
elif [ $arch = 'win-x64' ]; then
mv "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_x64.dll" \
"$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration.dll"
fi
rm "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_ARM64.dll"
elif [ $arch = 'win-aarch64' ]; then
mv "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_ARM64.dll" \
"$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration.dll"
rm "$APPDIR/integration/word-for-windows/libzoteroWinWordIntegration_x64.dll"
fi
# Delete extraneous files
find "$APPDIR" -depth -type d -name .git -exec rm -rf {} \;
@ -733,6 +739,9 @@ if [ $BUILD_WIN == 1 ]; then
"`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /V1 "`cygpath -w \"$BUILD_DIR/win_installer/uninstaller.nsi\"`"
elif [ "$arch" = "win-x64" ]; then
"`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/uninstaller.nsi\"`"
elif [ "$arch" = "win-aarch64" ]; then
# TODO
"`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/uninstaller.nsi\"`"
fi
mv "$BUILD_DIR/win_installer/helper.exe" "$APPDIR/uninstall"
@ -753,6 +762,8 @@ if [ $BUILD_WIN == 1 ]; then
INSTALLER_PATH="$DIST_DIR/Zotero-${VERSION}_win32_setup.exe"
elif [ "$arch" = "win-x64" ]; then
INSTALLER_PATH="$DIST_DIR/Zotero-${VERSION}_x64_setup.exe"
elif [ "$arch" = "win-aarch64" ]; then
INSTALLER_PATH="$DIST_DIR/Zotero-${VERSION}_aarch64_setup.exe"
fi
if [ $SIGN -eq 1 ]; then
@ -779,6 +790,9 @@ if [ $BUILD_WIN == 1 ]; then
"`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /V1 "`cygpath -w \"$BUILD_DIR/win_installer/installer.nsi\"`"
elif [ "$arch" = "win-x64" ]; then
"`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/installer.nsi\"`"
elif [ "$arch" = "win-aarch64" ]; then
# TODO
"`cygpath -u \"${NSIS_DIR}makensis.exe\"`" /DHAVE_64BIT_OS /V1 "`cygpath -w \"$BUILD_DIR/win_installer/installer.nsi\"`"
fi
mv "$BUILD_DIR/win_installer/setup.exe" "$INSTALLER_STAGE_DIR"

@ -1 +1 @@
Subproject commit 707486a73563a73db1406fc77e28090bda28c6ab
Subproject commit a71597746b4b4303bb8b13cdd9c0ce020e3488de

View file

@ -446,7 +446,7 @@ if [ $BUILD_WIN == 1 ]; then
GECKO_VERSION="$GECKO_VERSION_WIN"
DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION"
for arch in win32 win-x64; do
for arch in win32 win-x64 win-aarch64; do
xdir=firefox-$arch
rm -rf $xdir
@ -458,6 +458,8 @@ if [ $BUILD_WIN == 1 ]; then
else
if [ $arch = "win-x64" ]; then
curl -O "$DOWNLOAD_URL/win64/en-US/Firefox%20Setup%20$GECKO_VERSION.exe"
elif [ $arch = "win-aarch64" ]; then
curl -O "$DOWNLOAD_URL/win64-aarch64/en-US/Firefox%20Setup%20$GECKO_VERSION.exe"
else
curl -O "$DOWNLOAD_URL/$arch/en-US/Firefox%20Setup%20$GECKO_VERSION.exe"
fi

BIN
app/win/updater.exe.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
app/win/zotero.exe.tar.xz (Stored with Git LFS)

Binary file not shown.