|
5 | 5 |
|
6 | 6 | name: Build zAuth Rust binary for ARM64 |
7 | 7 | jobs: |
8 | | - build: |
| 8 | + build-macos-arm: |
9 | 9 | runs-on: ubuntu-latest |
| 10 | + env: |
| 11 | + OSXCROSS_TARGET: ${{ github.workspace }}/osxcross |
| 12 | + SDK_VERSION: 15.5 |
| 13 | + TARGET: aarch64-apple-darwin |
10 | 14 | steps: |
11 | | - - name: Checkout repository |
12 | | - uses: actions/checkout@v4 |
| 15 | + - uses: actions/checkout@v4 |
13 | 16 |
|
14 | | - - name: Set up Rust |
15 | | - uses: dtolnay/rust-toolchain@stable |
16 | | - with: |
17 | | - targets: aarch64-apple-darwin |
| 17 | + - name: Install dependencies |
| 18 | + run: sudo apt-get update && sudo apt-get install -y clang build-essential cmake git curl xz-utils |
18 | 19 |
|
19 | | - - name: Set up osxcross toolchain |
| 20 | + - name: Setup osxcross |
20 | 21 | uses: Timmmm/setup-osxcross@v2 |
21 | 22 | with: |
22 | | - osx-version: "15.5" |
| 23 | + osx-version: ${{ env.SDK_VERSION }} |
| 24 | + |
| 25 | + - name: Download macOS SDK |
| 26 | + run: | |
| 27 | + mkdir -p $OSXCROSS_TARGET/SDK |
| 28 | + curl -L -o $OSXCROSS_TARGET/SDK/MacOSX${SDK_VERSION}.sdk.tar.xz \ |
| 29 | + https://github.com/tpoechtrager/osxcross/raw/master/tarballs/MacOSX${SDK_VERSION}.sdk.tar.xz |
| 30 | + tar -xJf $OSXCROSS_TARGET/SDK/MacOSX${SDK_VERSION}.sdk.tar.xz -C $OSXCROSS_TARGET/SDK |
| 31 | + shell: bash |
23 | 32 |
|
24 | | - - name: Configure environment for macOS ARM cross-compiling |
| 33 | + - name: Setup cross compile env |
25 | 34 | run: | |
26 | | - export TRIPLE="aarch64-apple-darwin24.5" |
27 | | - export ARCHFLAG="-arch arm64" |
28 | | - |
29 | | - echo "CC=${TRIPLE}-clang" >> $GITHUB_ENV |
30 | | - echo "CXX=${TRIPLE}-clang++" >> $GITHUB_ENV |
31 | | - echo "AR=${TRIPLE}-ar" >> $GITHUB_ENV |
32 | | - echo "TARGET=aarch64-apple-darwin" >> $GITHUB_ENV |
33 | | - echo "CFLAGS=-isysroot /usr/local/osxcross/target/SDK/MacOSX15.5.sdk -mmacosx-version-min=11.0 ${ARCHFLAG}" >> $GITHUB_ENV |
34 | | - echo "LDFLAGS=-isysroot /usr/local/osxcross/target/SDK/MacOSX15.5.sdk ${ARCHFLAG}" >> $GITHUB_ENV |
35 | | - echo "RUSTFLAGS=-C linker=${TRIPLE}-clang" >> $GITHUB_ENV |
36 | | - echo "MACOSX_DEPLOYMENT_TARGET=11.0" >> $GITHUB_ENV |
37 | | - echo "OSXCROSS_NO_INCLUDE_PATHS=1" >> $GITHUB_ENV |
38 | | - echo "SDKROOT=/usr/local/osxcross/target/SDK/MacOSX15.5.sdk" >> $GITHUB_ENV |
39 | | - echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV |
40 | | - echo "ac_cv_func_malloc_0_nonnull=yes" >> $GITHUB_ENV |
41 | | - echo "ac_cv_func_realloc_0_nonnull=yes" >> $GITHUB_ENV |
| 35 | + export SDKROOT=$OSXCROSS_TARGET/SDK/MacOSX${SDK_VERSION}.sdk |
| 36 | + export CC=$OSXCROSS_TARGET/bin/aarch64-apple-darwin24.5-clang |
| 37 | + export CXX=$OSXCROSS_TARGET/bin/aarch64-apple-darwin24.5-clang++ |
| 38 | + export AR=$OSXCROSS_TARGET/bin/aarch64-apple-darwin24.5-ar |
| 39 | + export CFLAGS="-isysroot $SDKROOT -mmacosx-version-min=11.0 -arch arm64" |
| 40 | + export LDFLAGS="-isysroot $SDKROOT -arch arm64" |
| 41 | + export RUSTFLAGS="-C linker=$CC" |
| 42 | + echo "SDKROOT=$SDKROOT" >> $GITHUB_ENV |
| 43 | + echo "CC=$CC" >> $GITHUB_ENV |
| 44 | + echo "CXX=$CXX" >> $GITHUB_ENV |
| 45 | + echo "AR=$AR" >> $GITHUB_ENV |
| 46 | + echo "CFLAGS=$CFLAGS" >> $GITHUB_ENV |
| 47 | + echo "LDFLAGS=$LDFLAGS" >> $GITHUB_ENV |
| 48 | + echo "RUSTFLAGS=$RUSTFLAGS" >> $GITHUB_ENV |
42 | 49 |
|
43 | | - - name: Verify compiler |
| 50 | + - name: Build zauth |
44 | 51 | run: | |
45 | | - which $CC |
46 | | - $CC --version |
47 | | - echo "int main() {return 0;}" | $CC -v $CFLAGS -x c -o /dev/null - |
| 52 | + cargo build --release --target $TARGET |
48 | 53 |
|
49 | | - - name: Build libzauth (Rust + C + libsodium-sys) |
| 54 | + - name: Copy zauth binary |
50 | 55 | run: | |
51 | | - echo "Building for aarch64-apple-darwin..." |
52 | | - make libzauth |
53 | | - env: |
54 | | - TARGET: aarch64-apple-darwin |
55 | | - CC: ${{ env.CC }} |
56 | | - CXX: ${{ env.CXX }} |
57 | | - AR: ${{ env.AR }} |
58 | | - CFLAGS: ${{ env.CFLAGS }} |
59 | | - LDFLAGS: ${{ env.LDFLAGS }} |
60 | | - RUSTFLAGS: ${{ env.RUSTFLAGS }} |
61 | | - MACOSX_DEPLOYMENT_TARGET: 11.0 |
62 | | - OSXCROSS_NO_INCLUDE_PATHS: 1 |
63 | | - SDKROOT: /usr/local/osxcross/target/SDK/MacOSX15.5.sdk |
64 | | - PKG_CONFIG_ALLOW_CROSS: 1 |
65 | | - ac_cv_func_malloc_0_nonnull: yes |
66 | | - ac_cv_func_realloc_0_nonnull: yes |
| 56 | + mkdir -p build-artifacts |
| 57 | + cp target/$TARGET/release/zauth build-artifacts/ |
67 | 58 |
|
68 | | - - name: Upload compiled artifact |
69 | | - uses: actions/upload-artifact@v4 |
| 59 | + - name: Upload zauth macOS ARM binary |
| 60 | + uses: actions/upload-artifact@v3 |
70 | 61 | with: |
71 | | - name: libzauth-aarch64-apple-darwin |
72 | | - path: | |
73 | | - libs/libzauth/libzauth-c/target/aarch64-apple-darwin/release |
| 62 | + name: zauth-macos-arm |
| 63 | + path: build-artifacts/zauth |
0 commit comments