Pass AVIF_ENABLE_WERROR to libavif in the Android CI (#3133)
diff --git a/.github/workflows/ci-android-jni.yml b/.github/workflows/ci-android-jni.yml
index 057dc4e..b2eecc2 100644
--- a/.github/workflows/ci-android-jni.yml
+++ b/.github/workflows/ci-android-jni.yml
@@ -42,6 +42,8 @@
run: sdkmanager "cmake;3.22.1"
- name: Build the libavif JNI Wrapper
working-directory: android_jni
- run: ./gradlew --no-daemon assembleRelease
+ run: |
+ ./gradlew --no-daemon assembleRelease \
+ -Pandroid.extraCMakeFlags="-DAVIF_ENABLE_WERROR=ON"
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
diff --git a/android_jni/avifandroidjni/build.gradle b/android_jni/avifandroidjni/build.gradle
index 2d39570..da7e3e8 100644
--- a/android_jni/avifandroidjni/build.gradle
+++ b/android_jni/avifandroidjni/build.gradle
@@ -13,6 +13,16 @@
versionCode 1
versionName "1.0"
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
+ externalNativeBuild {
+ cmake {
+ if (project.hasProperty('android.extraCMakeFlags')) {
+ def extraCMakeFlags = project.property('android.extraCMakeFlags')
+ if (extraCMakeFlags != null && !extraCMakeFlags.toString().isEmpty()) {
+ arguments extraCMakeFlags.toString()
+ }
+ }
+ }
+ }
}
buildTypes {
diff --git a/android_jni/avifandroidjni/src/main/jni/CMakeLists.txt b/android_jni/avifandroidjni/src/main/jni/CMakeLists.txt
index da944b3..1868317 100644
--- a/android_jni/avifandroidjni/src/main/jni/CMakeLists.txt
+++ b/android_jni/avifandroidjni/src/main/jni/CMakeLists.txt
@@ -5,6 +5,10 @@
project(avif_android_jni)
+# Setting the same option as libavif here ensures the AVIF_ENABLE_WERROR
+# variable is set in the CACHE for add_subdirectory to consume below.
+option(AVIF_ENABLE_WERROR "Treat all compiler warnings as errors" OFF)
+
# Perform a static build of libavif and link it with the jni shared library so
# that we end up with a single libavif_android.so file in the end.
#