android/Bootstrap/Makefile.shared | 5 +++-- config_host.mk.in | 2 +- configure.ac | 24 ++++++++++++------------ external/nss/ExternalProject_nss.mk | 2 +- 4 files changed, 17 insertions(+), 16 deletions(-)
New commits: commit 128de1949ff120ac925dbb06e398fa992fb295ba Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Tue Apr 19 15:18:49 2022 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Wed Apr 20 05:19:03 2022 +0200 android: Use property instead of ANDROID_NDK_HOME env var Write an `ndk.dir` property with the directory path to `android/source/local.properties` instead, similar to how it's done for `sdk.dir`. Also, rename the `ANDROID_NDK_HOME` variable that's assigned in configure.ac that holds the corresponding value to `ANDROID_NDK_DIR`, because the gradle warning still shows up if that environment variable is set in addition to having an `ndk.dir` property in `local.properties`. This makes the following gradle warning disappear: > > Task :stripStrippedUIDebugDebugSymbols > WARNING: Support for ANDROID_NDK_HOME is deprecated and will be removed in the future. Use android.ndkVersion in build.gradle instead. > Support for ANDROID_NDK_HOME is deprecated and will be removed in the future. Use android.ndkVersion in build.gradle instead. Note however, that with this approach of using the `ndk.dir` property instead of the suggested `android.ndkVersion` (with the latter having the stricter requirement that the `ndk` dir would have to be a subdir of the SDK dir), doing the actual upgrade to a newer Gradle (plugin) version in follow-up commit Change-Id Ia982d72d877e229c3006c6d528b830d16c88481f "android: Update Android Gradle Plugin to 7.1.3" revealed that the use of the `ndk.dir` property is deprecated in newer Gradle (plugin) versions as well, resulting in this warning. > > Task :stripStrippedUIDebugDebugSymbols > [CXX5106] NDK was located by using ndk.dir property. This method is > deprecated and will be removed in a future release. Please delete > ndk.dir from local.properties and set android.ndkVersion to > [20.0.5594570] in all native modules in the project. > https://developer.android.com/r/studio-ui/ndk-dir It might make sense to address that in a follow-up step, but for now, it's an improvement and keeps it working after the upgrade without potentially causing any incompatibility problems with existing autogen configurations, while support for the `ANDROID_NDK_HOME` env var that was used so far seems to have been dropped, resulting in > > Task :stripStrippedUIDebugDebugSymbols > Unable to strip the following libraries, packaging them as they are: > libc++_shared.so, libfreebl3.so, liblo-native-code.so, libnspr4.so, > libnss3.so, libnssckbi.so, libnssdbm3.so, libnssutil3.so, > libplc4.so, libplds4.so, libsmime3.so, libsoftokn3.so, > libsqlite3.so, libssl3.so. instead if upgrading gradle without switching to the use of the property. Change-Id: I4a090e8736dac80777f69b0e12819b9c056f582b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133177 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/android/Bootstrap/Makefile.shared b/android/Bootstrap/Makefile.shared index f40693615f0a..18082ea30ea3 100644 --- a/android/Bootstrap/Makefile.shared +++ b/android/Bootstrap/Makefile.shared @@ -23,7 +23,8 @@ OBJLOCAL=$(BUILDDIR)/android/obj/local/$(ANDROID_APP_ABI) # local.properties: $(BUILDDIR)/config_host.mk - echo sdk.dir=$(ANDROID_SDK_HOME) >local.properties + echo ndk.dir=$(ANDROID_NDK_DIR) >local.properties + echo sdk.dir=$(ANDROID_SDK_HOME) >>local.properties # # Build / link the single .so for this app @@ -71,7 +72,7 @@ $(SODEST)/nss-libraries : mkdir -p $(SODEST) $(foreach lib,$(NSSLIBS),$(STRIP) -o $(SODEST)/lib$(lib).so $(INSTDIR)/$(LIBO_LIB_FOLDER)/lib$(lib).so;) -$(SODEST)/libc++_shared.so : $(ANDROID_NDK_HOME)/sources/cxx-stl/llvm-libc++/libs/$(ANDROID_APP_ABI)/libc++_shared.so +$(SODEST)/libc++_shared.so : $(ANDROID_NDK_DIR)/sources/cxx-stl/llvm-libc++/libs/$(ANDROID_APP_ABI)/libc++_shared.so mkdir -p $(SODEST) cp $< $@ diff --git a/config_host.mk.in b/config_host.mk.in index cc05b3448d0b..7552991e366b 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -15,7 +15,7 @@ export BUILDDIR=@BUILDDIR@ @x_AFLAGS@ export AFLAGS=@AFLAGS@ export ABW_CFLAGS=$(gb_SPACE)@ABW_CFLAGS@ export ABW_LIBS=$(gb_SPACE)@ABW_LIBS@ -export ANDROID_NDK_HOME=@ANDROID_NDK_HOME@ +export ANDROID_NDK_DIR=@ANDROID_NDK_DIR@ export ANDROID_APP_ABI=@ANDROID_APP_ABI@ export ANDROID_SDK_HOME=@ANDROID_SDK_HOME@ export ANDROID_PACKAGE_NAME=@ANDROID_PACKAGE_NAME@ diff --git a/configure.ac b/configure.ac index e4fe7891ddf2..151a894537ee 100644 --- a/configure.ac +++ b/configure.ac @@ -650,22 +650,22 @@ AC_ARG_WITH(android-api-level, [Specify the API level when building for Android. Defaults to 16 for ARM and x86 and to 21 for ARM64 and x86-64]), ,) -ANDROID_NDK_HOME= +ANDROID_NDK_DIR= if test -z "$with_android_ndk" -a -e "$SRC_ROOT/external/android-ndk" -a "$build" != "$host"; then with_android_ndk="$SRC_ROOT/external/android-ndk" fi if test -n "$with_android_ndk"; then - eval ANDROID_NDK_HOME=$with_android_ndk + eval ANDROID_NDK_DIR=$with_android_ndk # Set up a lot of pre-canned defaults - if test ! -f $ANDROID_NDK_HOME/RELEASE.TXT; then - if test ! -f $ANDROID_NDK_HOME/source.properties; then - AC_MSG_ERROR([Unrecognized Android NDK. Missing RELEASE.TXT or source.properties file in $ANDROID_NDK_HOME.]) + if test ! -f $ANDROID_NDK_DIR/RELEASE.TXT; then + if test ! -f $ANDROID_NDK_DIR/source.properties; then + AC_MSG_ERROR([Unrecognized Android NDK. Missing RELEASE.TXT or source.properties file in $ANDROID_NDK_DIR.]) fi - ANDROID_NDK_VERSION=`sed -n -e 's/Pkg.Revision = //p' $ANDROID_NDK_HOME/source.properties` + ANDROID_NDK_VERSION=`sed -n -e 's/Pkg.Revision = //p' $ANDROID_NDK_DIR/source.properties` else - ANDROID_NDK_VERSION=`cut -f1 -d' ' <$ANDROID_NDK_HOME/RELEASE.TXT` + ANDROID_NDK_VERSION=`cut -f1 -d' ' <$ANDROID_NDK_DIR/RELEASE.TXT` fi if test -z "$ANDROID_NDK_VERSION"; then AC_MSG_ERROR([Failed to determine Android NDK version. Please check your installation.]) @@ -751,10 +751,10 @@ if test -n "$with_android_ndk"; then # ndk would also support windows and windows-x86_64 ;; esac - android_TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$android_HOST_TAG + android_TOOLCHAIN=$ANDROID_NDK_DIR/toolchains/llvm/prebuilt/$android_HOST_TAG ANDROID_COMPILER_BIN=$android_TOOLCHAIN/bin dnl TODO: NSS build uses it... - ANDROID_BINUTILS_PREBUILT_ROOT=$ANDROID_NDK_HOME/toolchains/$android_platform_prefix-$ANDROID_GCC_TOOLCHAIN_VERSION/prebuilt/$android_HOST_TAG + ANDROID_BINUTILS_PREBUILT_ROOT=$ANDROID_NDK_DIR/toolchains/$android_platform_prefix-$ANDROID_GCC_TOOLCHAIN_VERSION/prebuilt/$android_HOST_TAG AC_SUBST(ANDROID_BINUTILS_PREBUILT_ROOT) test -z "$AR" && AR=$ANDROID_COMPILER_BIN/$android_gnu_prefix-ar @@ -782,7 +782,7 @@ if test -n "$with_android_ndk"; then CXX_BASE="clang++" fi fi -AC_SUBST(ANDROID_NDK_HOME) +AC_SUBST(ANDROID_NDK_DIR) AC_SUBST(ANDROID_APP_ABI) AC_SUBST(ANDROID_GCC_TOOLCHAIN_VERSION) @@ -807,7 +807,7 @@ AC_ARG_ENABLE([android-lok], actually the Online-based, non-modified LOK.]) ) ENABLE_ANDROID_LOK= -if test -n "$ANDROID_NDK_HOME" ; then +if test -n "$ANDROID_NDK_DIR" ; then if test "$enable_android_lok" = yes; then ENABLE_ANDROID_LOK=TRUE AC_DEFINE(HAVE_FEATURE_ANDROID_LOK) @@ -1234,7 +1234,7 @@ if test "$_os" = "Android" ; then # Verify that the NDK and SDK options are proper if test -z "$with_android_ndk"; then AC_MSG_ERROR([the --with-android-ndk option is mandatory, unless it is available at external/android-ndk/.]) - elif test ! -f "$ANDROID_NDK_HOME/meta/abis.json"; then + elif test ! -f "$ANDROID_NDK_DIR/meta/abis.json"; then AC_MSG_ERROR([the --with-android-ndk option does not point to an Android NDK]) fi diff --git a/external/nss/ExternalProject_nss.mk b/external/nss/ExternalProject_nss.mk index 4297be931e69..ee3c7839fcb6 100644 --- a/external/nss/ExternalProject_nss.mk +++ b/external/nss/ExternalProject_nss.mk @@ -76,7 +76,7 @@ $(call gb_ExternalProject_get_state_target,nss,build): \ COMMA=$(COMMA) \ CC="$(CC)$(if $(filter iOS,$(OS)), -DNSS_STATIC_SOFTOKEN=1 -DNSS_STATIC_FREEBL=1 -DNSS_STATIC_PKCS11=1)$(if $(filter ANDROID,$(OS)), -D_PR_NO_LARGE_FILES=1 -DSQLITE_DISABLE_LFS=1)" CCC="$(CXX)" \ $(if $(CROSS_COMPILING),NSINSTALL="$(if $(filter MACOSX,$(OS_FOR_BUILD)),xcrun python3,$(call gb_ExternalExecutable_get_command,python)) $(SRCDIR)/external/nss/nsinstall.py") \ - $(if $(filter ANDROID,$(OS)),OS_TARGET=Android OS_TARGET_RELEASE=16 ARCHFLAG="" DEFAULT_COMPILER=clang ANDROID_NDK=$(ANDROID_NDK_HOME) ANDROID_TOOLCHAIN_VERSION=$(ANDROID_GCC_TOOLCHAIN_VERSION) ANDROID_PREFIX=$(HOST_PLATFORM) ANDROID_SYSROOT=$(ANDROID_NDK_HOME)/sysroot ANDROID_TOOLCHAIN=$(ANDROID_BINUTILS_PREBUILT_ROOT)) \ + $(if $(filter ANDROID,$(OS)),OS_TARGET=Android OS_TARGET_RELEASE=16 ARCHFLAG="" DEFAULT_COMPILER=clang ANDROID_NDK=$(ANDROID_NDK_DIR) ANDROID_TOOLCHAIN_VERSION=$(ANDROID_GCC_TOOLCHAIN_VERSION) ANDROID_PREFIX=$(HOST_PLATFORM) ANDROID_SYSROOT=$(ANDROID_NDK_DIR)/sysroot ANDROID_TOOLCHAIN=$(ANDROID_BINUTILS_PREBUILT_ROOT)) \ NSS_DISABLE_GTESTS=1 \ nss_build_all \ && rm -f $(call gb_UnpackedTarball_get_dir,nss)/dist/out/lib/*.a \