Skip to content

Commit d7aa64d

Browse files
authored
Merge pull request #43 from mumei-lang/devin/1772814020-fix-cross-compile-ci
fix: use macos-13 for x86_64-apple-darwin, build static Z3 for musl
2 parents 1dcffc1 + 2644b52 commit d7aa64d

1 file changed

Lines changed: 27 additions & 4 deletions

File tree

.github/workflows/release.yml

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
matrix:
1414
include:
1515
- target: x86_64-apple-darwin
16-
os: macos-latest
16+
os: macos-13
1717
name: mumei-x86_64-apple-darwin
1818
- target: aarch64-apple-darwin
1919
os: macos-latest
@@ -36,7 +36,7 @@ jobs:
3636
with:
3737
targets: ${{ matrix.target }}
3838
- name: Install system dependencies (Ubuntu)
39-
if: runner.os == 'Linux'
39+
if: runner.os == 'Linux' && !matrix.musl
4040
run: |
4141
sudo apt-get update
4242
sudo apt-get install -y libz3-dev pkg-config libssl-dev libzstd-dev
@@ -48,10 +48,33 @@ jobs:
4848
sudo apt-get install -y llvm-17-dev libclang-17-dev libpolly-17-dev
4949
echo "LLVM_SYS_170_PREFIX=/usr/lib/llvm-17" >> $GITHUB_ENV
5050
echo "LIBCLANG_PATH=/usr/lib/llvm-17/lib" >> $GITHUB_ENV
51-
- name: Install musl toolchain
51+
- name: Install musl toolchain and static dependencies
5252
if: matrix.musl
5353
run: |
54-
sudo apt-get install -y musl-tools
54+
sudo apt-get update
55+
sudo apt-get install -y musl-tools pkg-config libzstd-dev cmake ninja-build python3
56+
# LLVM 17 from official apt repo
57+
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc > /dev/null
58+
codename=$(lsb_release -cs)
59+
echo "deb http://apt.llvm.org/${codename}/ llvm-toolchain-${codename}-17 main" | sudo tee /etc/apt/sources.list.d/llvm-17.list > /dev/null
60+
sudo apt-get update
61+
sudo apt-get install -y llvm-17-dev libclang-17-dev libpolly-17-dev
62+
echo "LLVM_SYS_170_PREFIX=/usr/lib/llvm-17" >> $GITHUB_ENV
63+
echo "LIBCLANG_PATH=/usr/lib/llvm-17/lib" >> $GITHUB_ENV
64+
# Build Z3 as a static library for musl compatibility
65+
Z3_VERSION=4.13.4
66+
curl -sL https://github.com/Z3Prover/z3/archive/refs/tags/z3-${Z3_VERSION}.tar.gz | tar xz
67+
cd z3-z3-${Z3_VERSION}
68+
mkdir build && cd build
69+
cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=/usr/local/z3-static \
70+
-DZ3_BUILD_LIBZ3_SHARED=OFF \
71+
-DCMAKE_C_COMPILER=musl-gcc \
72+
-DCMAKE_CXX_COMPILER=g++ \
73+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
74+
ninja -j$(nproc)
75+
sudo ninja install
76+
echo "Z3_SYS_Z3_HEADER=/usr/local/z3-static/include/z3.h" >> $GITHUB_ENV
77+
echo "Z3_SYS_Z3_LIB_DIR=/usr/local/z3-static/lib" >> $GITHUB_ENV
5578
- name: Install system dependencies (macOS)
5679
if: runner.os == 'macOS'
5780
run: |

0 commit comments

Comments
 (0)