From cb6f61cf376433d88e947071e1c5b5da12f5b686 Mon Sep 17 00:00:00 2001 From: Colin Edwards Date: Sat, 20 Apr 2024 20:43:17 -0500 Subject: [PATCH] android: Update to NDK 27 --- .github/workflows/build_android.yml | 7 ++++++- android/build.py | 1 - doc/user.rst | 2 +- meson.build | 5 ++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_android.yml b/.github/workflows/build_android.yml index f17f2ca70..fb04b39ac 100644 --- a/.github/workflows/build_android.yml +++ b/.github/workflows/build_android.yml @@ -42,12 +42,17 @@ jobs: ninja-build \ quilt pip3 install --user meson==1.3.0 + + # todo: remove once NDK 27 is out of beta + - name: Install Beta NDK + run: | + echo y | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "ndk;27.0.11718014" - name: Build run: | mkdir -p output/android cd ./output/android - ../../android/build.py $ANDROID_SDK_ROOT $ANDROID_NDK_LATEST_HOME arm64-v8a \ + ../../android/build.py $ANDROID_SDK_ROOT $ANDROID_SDK_ROOT/ndk/27.0.11718014 arm64-v8a \ --buildtype=debugoptimized -Db_ndebug=true \ -Dwrap_mode=forcefallback diff --git a/android/build.py b/android/build.py index 9163268b5..1050a0f12 100755 --- a/android/build.py +++ b/android/build.py @@ -59,7 +59,6 @@ configure_args += [ '-Dandroid_ndk=' + ndk_path, '-Dandroid_abi=' + android_abi, '-Dandroid_strip=' + toolchain.strip, - '-Dopenssl:asm=disabled' ] from build.meson import configure as run_meson diff --git a/doc/user.rst b/doc/user.rst index 7fffd3bd5..ae9ee3639 100644 --- a/doc/user.rst +++ b/doc/user.rst @@ -200,7 +200,7 @@ Compiling for Android You need: * Android SDK (sdk platform 34, build tools 34.0.0) -* `Android NDK r26b `_ +* `Android NDK r27 `_ * `Meson 0.56.0 `__ and `Ninja `__ * cmake diff --git a/meson.build b/meson.build index 2e3c424d3..d4bfdf92d 100644 --- a/meson.build +++ b/meson.build @@ -85,7 +85,6 @@ project( 'libmpdclient:documentation=false', 'libmpdclient:test=false', 'openssl:build_cli=false', - 'openssl:asm=disabled', # work around "call to undeclared function "asm" on Android 'opus:docs=disabled', 'opus:extra-programs=disabled', 'opus:tests=disabled', @@ -267,6 +266,10 @@ if is_windows endif if is_android + # With ndk27 libcpp doesn't seem to have a rune table defined for the + # localization module, tell it to use the one it ships with + common_cppflags += ['-D_LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE'] + subdir('android') endif