Skip to content

Commit 91a056e

Browse files
committed
fix: use 7z for LLVM extraction (tar may not handle .tar.xz on Windows)
1 parent 9c6c780 commit 91a056e

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

.github/workflows/ci-windows.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,24 @@ jobs:
8181
LLVM_DEST="$USERPROFILE/.mcpp/registry/data/xpkgs/xim-x-llvm/$LLVM_VER"
8282
if [ ! -f "$LLVM_DEST/bin/clang++.exe" ]; then
8383
LLVM_URL="https://github.com/xlings-res/llvm/releases/download/$LLVM_VER/llvm-$LLVM_VER-windows-x86_64.tar.xz"
84-
echo "Downloading LLVM $LLVM_VER..."
84+
echo "Downloading LLVM $LLVM_VER from $LLVM_URL ..."
8585
WORK=$(mktemp -d)
86-
curl -fsSL -o "$WORK/llvm.tar.xz" "$LLVM_URL"
86+
curl -fSL --retry 3 -o "$WORK/llvm.tar.xz" "$LLVM_URL"
87+
echo "Downloaded $(du -h "$WORK/llvm.tar.xz" | cut -f1)"
8788
mkdir -p "$LLVM_DEST"
88-
tar -xf "$WORK/llvm.tar.xz" -C "$LLVM_DEST" --strip-components=1
89+
# Use 7z (available on all Windows runners) for .tar.xz
90+
cd "$WORK"
91+
7z x -y llvm.tar.xz
92+
7z x -y llvm.tar -o"$LLVM_DEST" -aoa
93+
# The tar contains a top-level dir — move contents up if needed
94+
INNER=$(ls -d "$LLVM_DEST"/llvm-* 2>/dev/null | head -1)
95+
if [ -d "$INNER/bin" ]; then
96+
mv "$INNER"/* "$LLVM_DEST"/
97+
rmdir "$INNER" 2>/dev/null || true
98+
fi
99+
cd -
89100
rm -rf "$WORK"
90-
echo "LLVM installed: $(ls "$LLVM_DEST/bin/clang++.exe" 2>/dev/null && echo OK || echo FAILED)"
101+
ls "$LLVM_DEST/bin/clang++.exe" && echo "LLVM ready" || echo "LLVM extraction failed"
91102
fi
92103
93104
"$MCPP" build

0 commit comments

Comments
 (0)