Windows CI: look in x64/ subdir for SFX modules

7-Zip Extra 23.01 puts 7zSD.sfx / 7zS.sfx under x64/ (64-bit variants)
and x86/ subdirs, not at the archive root. The previous lookup only
checked the root and bailed even though the modules were one level
deeper. Add x64/ as the primary candidate path, fall back to root for
older Extra archive layouts.
This commit is contained in:
jwinterm
2026-05-23 20:03:26 -04:00
parent 3bf9509f08
commit bdbd3388a3
+9 -1
View File
@@ -348,7 +348,12 @@ jobs:
"$SEVENZ_DIR/7z.exe" x "$EXTRA_DIR/7z-extra.7z" -o"$EXTRA_DIR" -y | tail -3
rm "$EXTRA_DIR/7z-extra.7z"
fi
for candidate in "$EXTRA_DIR/7zSD.sfx" "$EXTRA_DIR/7zS.sfx"; do
# 7-Zip Extra 23.01 lays out architectures in subdirs.
# x64/ has the 64-bit SFX modules; the root has 32-bit + dlls.
# We want the 64-bit one to match our HashWallet.exe.
for candidate in \
"$EXTRA_DIR/x64/7zSD.sfx" "$EXTRA_DIR/x64/7zS.sfx" \
"$EXTRA_DIR/7zSD.sfx" "$EXTRA_DIR/7zS.sfx"; do
if [[ -f "$candidate" ]]; then
SFX_MODULE="$candidate"
break
@@ -356,7 +361,10 @@ jobs:
done
if [[ -z "${SFX_MODULE:-}" ]]; then
echo "FATAL: no installer-mode SFX module in 7-Zip Extra"
echo "--- top-level: ---"
ls "$EXTRA_DIR"
echo "--- x64: ---"
ls "$EXTRA_DIR/x64" 2>/dev/null
exit 1
fi
echo "Using SFX module: $SFX_MODULE"