From: Brendan Hansen Date: Wed, 22 Nov 2023 20:08:10 +0000 (-0600) Subject: added: `darwin-wasmer-arm64` compilation X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=273ba98371849efafe58c8827af61a74d2a552d8;p=onyx.git added: `darwin-wasmer-arm64` compilation --- diff --git a/.github/workflows/onyx-build.yml b/.github/workflows/onyx-build.yml index c43aa52f..7d05d8ad 100644 --- a/.github/workflows/onyx-build.yml +++ b/.github/workflows/onyx-build.yml @@ -79,17 +79,27 @@ jobs: run: | chmod +x build.sh - - name: Install Wasmer building dependencies - if: matrix.runtime_library == 'wasmer' + - name: Install Wasmer building dependencies (AMD64) + if: (matrix.runtime_library == 'wasmer') && (matrix.build != 'darwin-arm64') run: | curl https://get.wasmer.io -sSfL | sh echo "$HOME/.wasmer/bin" >> $GITHUB_PATH + # Have to do MacOS ARM64 special, since I don't want to pay for the M1 GitHub runners + # to build this natively. Instead, we directly download the ARM version of WASMER + # and link to its libwasmer.a file. + - name: Install Wasmer building dependencies (ARM64) + if: (matrix.runtime_library == 'wasmer') && (matrix.build == 'darwin-arm64') + run: | + curl -o wasmer.tar.gz https://github.com/wasmerio/wasmer/releases/v4.2.3/wasmer-darwin-arm64.tar.gz -L + mkdir wasmer + tar -C wasmer zxvf wasmer.tar.gz + - name: Install Windows building dependencies if: matrix.build == 'windows-amd64' uses: ilammy/msvc-dev-cmd@v1 - - name: Build Onyx for ${{ matrix.build }} + - name: Build Onyx for ${{ matrix.build }}-${{ matrix.runtime_library }} if: (matrix.build == 'linux-amd64') && (matrix.runtime_library != 'none') run: | ./build.sh compile compress @@ -99,7 +109,7 @@ jobs: ONYX_RUNTIME_LIBRARY: ${{ matrix.runtime_library }} ONYX_USE_DYNCALL: '1' - - name: Build Onyx for ${{ matrix.build }} + - name: Build Onyx for ${{ matrix.build }}-${{ matrix.runtime_library }} if: (matrix.build == 'linux-amd64') && (matrix.runtime_library == 'none') run: | ./build.sh compile compress @@ -107,7 +117,7 @@ jobs: ONYX_CC: gcc ONYX_ARCH: linux_x86_64 - - name: Build Onyx for ${{ matrix.build }} + - name: Build Onyx for ${{ matrix.build }}-${{ matrix.runtime_library }} if: (matrix.build == 'darwin-amd64') && (matrix.runtime_library != 'none') run: | ./build.sh compile compress @@ -116,7 +126,7 @@ jobs: ONYX_ARCH: darwin_amd64 ONYX_RUNTIME_LIBRARY: ${{ matrix.runtime_library }} - - name: Build Onyx for ${{ matrix.build }} + - name: Build Onyx for ${{ matrix.build }}-${{ matrix.runtime_library }} if: (matrix.build == 'darwin-amd64') && (matrix.runtime_library == 'none') run: | ./build.sh compile compress @@ -124,7 +134,18 @@ jobs: ONYX_CC: gcc ONYX_ARCH: darwin_amd64 - - name: Build Onyx for ${{ matrix.build }} + - name: Build Onyx for ${{ matrix.build }}-${{ matrix.runtime_library }} + if: (matrix.build == 'darwin-arm64') && (matrix.runtime_library == 'wasmer') + run: | + ./build.sh compile compress + env: + ONYX_CC: gcc + ONYX_ARCH: darwin_arm64 + ONYX_TARGET: aarch64-apple-darwin + WASMER_LIB_PATH: wasmer/lib + ONYX_RUNTIME_LIBRARY: wasmer-custom + + - name: Build Onyx for ${{ matrix.build }}-${{ matrix.runtime_library }} if: (matrix.build == 'darwin-arm64') && (matrix.runtime_library == 'none') run: | ./build.sh compile compress @@ -133,7 +154,7 @@ jobs: ONYX_ARCH: darwin_arm64 ONYX_TARGET: aarch64-apple-darwin - - name: Build Onyx for ${{ matrix.build }} + - name: Build Onyx for ${{ matrix.build }}-${{ matrix.runtime_library }} if: matrix.build == 'windows-amd64' run: | cmd.exe /c 'build.bat dist' diff --git a/compiler/build.sh b/compiler/build.sh index 215d9458..e20154dd 100755 --- a/compiler/build.sh +++ b/compiler/build.sh @@ -31,6 +31,11 @@ if [ ! -z ${ONYX_RUNTIME_LIBRARY+x} ]; then LIBS="$(wasmer config --libdir)/libwasmer.a $LIBS" ;; + # Used by MacOS ARM64 cross compilation + wasmer-custom) + LIBS="$WASMER_LIB_PATH/libwasmer.a $LIBS" + ;; + *) echo "Unknown WebAssembly runtime '$ONYX_RUNTIME_LIBRARY'. Aborting."; exit 1