From: Eric Biggers Date: Wed, 22 Mar 2023 03:29:45 +0000 (-0700) Subject: ci.yml: test cross-compiling for Android X-Git-Tag: v1.47.1-rc1~85^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;ds=sidebyside;h=018ddcb29239fbd0a16a54e00613954e2d88b2b6;p=thirdparty%2Fe2fsprogs.git ci.yml: test cross-compiling for Android Add jobs that cross-compile e2fsprogs for Android using the Android NDK. These use the autotools-based build system, so they're a bit different from the actual Android builds, but they should still be useful. Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o --- diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b0f91506..0c14250a4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -126,3 +126,36 @@ jobs: with: name: windows-${{matrix.env}}-config.h path: lib/config.h + + # Jobs that cross-compile e2fsprogs for Android using the Android NDK. Note + # that these use the autotools-based build system, which makes them a bit + # different from the actual Android builds from the Android source tree. + cross-compile-for-android: + name: Cross-compile for Android (${{matrix.arch}}) + strategy: + matrix: + include: + - { arch: aarch64, target: aarch64-linux-android } + - { arch: armv7a, target: armv7a-linux-androideabi } + - { arch: i686, target: i686-linux-android } + - { arch: x86_64, target: x86_64-linux-android } + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + # See https://developer.android.com/ndk/guides/other_build_systems#autoconf + - name: configure + run: | + TOOLCHAIN=$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64 + API_LEVEL=29 # Android 10 + export AR=$TOOLCHAIN/bin/llvm-ar + export CC=$TOOLCHAIN/bin/${{matrix.target}}${API_LEVEL}-clang + export AS=$CC + export LD=$TOOLCHAIN/bin/ld + export RANLIB=$TOOLCHAIN/bin/llvm-ranlib + export STRIP=$TOOLCHAIN/bin/llvm-strip + ./configure --host=${{matrix.target}} CFLAGS="$DEF_CFLAGS" + - run: make -j8 V=1 CFLAGS_WARN="-Werror" + - uses: actions/upload-artifact@v3 + with: + name: android-${{matrix.arch}}-config.h + path: lib/config.h