summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederik Seiffert <frederik@seiffert.org>2022-09-26 13:43:40 +0200
committerGitHub <noreply@github.com>2022-09-26 07:43:40 -0400
commit5ce26a0e03eacb483709189e8cbb05509fa68612 (patch)
tree022ab08243324b04c20c5cc9ea6fe25ec310f134
parent55bcc47717bb0f9c5276a45710d757cda7a61f8e (diff)
downloadlibffi-5ce26a0e03eacb483709189e8cbb05509fa68612.tar.gz
CI: add Android builds (#732)
-rw-r--r--.github/workflows/build.yml33
1 files changed, 33 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ba72056..458fc85 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -349,3 +349,36 @@ jobs:
-l host=x86_64-pc-cygwin \
--policy=https://github.com/libffi/rlgl-policy.git $(find . -name libffi.log)
shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
+
+ build-android:
+ name: Android ${{ matrix.host }}
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ host: [armv7a-linux-androideabi, aarch64-linux-android, i686-linux-android, x86_64-linux-android]
+
+ steps:
+ - run: git config --global core.autocrlf input
+ - uses: actions/checkout@v2
+ - run: ./.ci/install.sh
+ - env:
+ HOST: ${{ matrix.HOST }}
+ ANDROID_API_LEVEL: 23
+ CONFIGURE_OPTIONS: "--disable-shared --disable-multi-os-directory" # fixes warning about unsupported -print-multi-os-directory with clang
+ run: |
+ # Relevant documentation:
+ # https://developer.android.com/ndk/guides/other_build_systems
+ # https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md
+ export TOOLCHAIN="${ANDROID_NDK_ROOT}"/toolchains/llvm/prebuilt/linux-x86_64
+ export CC="${TOOLCHAIN}"/bin/${HOST}${ANDROID_API_LEVEL}-clang
+ export CXX="${TOOLCHAIN}"/bin/${HOST}${ANDROID_API_LEVEL}-clang++
+ export LD="${TOOLCHAIN}"/bin/ld.lld
+ export AR="${TOOLCHAIN}"/bin/llvm-ar
+ export AS="${CC}"
+ export RANLIB="${TOOLCHAIN}"/bin/llvm-ranlib
+ export STRIP="${TOOLCHAIN}"/bin/llvm-strip
+ export NM="${TOOLCHAIN}"/bin/llvm-nm
+ export OBJDUMP="${TOOLCHAIN}"/bin/llvm-objdump
+ ./.ci/build.sh