Commit 4a7bf589 for openh264
commit 4a7bf58989a668fbb77e706989c50355626b1ec2
Author: BenzhengZhang <140143892+BenzhengZhang@users.noreply.github.com>
Date: Mon Sep 21 14:38:00 2026 +0800
ci: build Android libraries for all supported ABIs (#4021)
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 2ad3260f..2177f48d 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -37,6 +37,41 @@ jobs:
- run: LDFLAGS=-fsanitize=address CFLAGS=-fsanitize=address make -j$(nproc)
- run: ./codec_unittest
+ android:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ arch: [arm, arm64, x86, x86_64]
+ env:
+ NDK_VERSION: 27.2.12479018
+ steps:
+ - uses: actions/checkout@v3
+ - run: sudo apt-get update -qq
+ - run: sudo apt-get install -qq nasm
+ - name: Install Android NDK
+ run: |
+ "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" "ndk;$NDK_VERSION"
+ - name: Build Android library
+ run: |
+ make -j$(nproc) libraries \
+ OS=android \
+ ARCH=${{ matrix.arch }} \
+ TARGET=android-21 \
+ NDKLEVEL=21 \
+ ENABLEPIC=Yes \
+ NDKROOT="$ANDROID_SDK_ROOT/ndk/$NDK_VERSION"
+ - name: Verify 16 KB ELF alignment
+ run: |
+ readelf="$ANDROID_SDK_ROOT/ndk/$NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-readelf"
+ bad_alignments="$($readelf -lW libopenh264.so | awk '$1 == "LOAD" && $NF != "0x4000" { print }')"
+ if [[ -n "$bad_alignments" ]]; then
+ echo "LOAD segments without 16 KB alignment:"
+ echo "$bad_alignments"
+ exit 1
+ fi
+ $readelf -lW libopenh264.so
+
windows:
runs-on: windows-2022
steps: