diff options
-rw-r--r-- | android/Bootstrap/Makefile.shared | 2 | ||||
-rw-r--r-- | android/source/build.gradle | 6 | ||||
-rw-r--r-- | bridges/Library_cpp_uno.mk | 4 | ||||
-rw-r--r-- | configure.ac | 78 | ||||
-rw-r--r-- | external/nss/ExternalProject_nss.mk | 2 | ||||
-rw-r--r-- | external/owncloud-android-lib/build.gradle | 16 | ||||
-rw-r--r-- | solenv/gbuild/platform/ANDROID_GODSON_GCC.mk | 17 | ||||
-rw-r--r-- | solenv/gbuild/platform/android.mk | 9 |
8 files changed, 48 insertions, 86 deletions
diff --git a/android/Bootstrap/Makefile.shared b/android/Bootstrap/Makefile.shared index 942f5f8179ee..0be8e1e14250 100644 --- a/android/Bootstrap/Makefile.shared +++ b/android/Bootstrap/Makefile.shared @@ -59,7 +59,7 @@ WHOLELIBS = \ $(OBJLOCAL)/liblo-native-code.so : native-code.cxx $(ALL_STATIC_LIBS) @echo "Linking $@" mkdir -p $(OBJLOCAL) - $(CXX) -Wl,--build-id=sha1 -Wl,--gc-sections -Wl,--version-script=../Bootstrap/version.map -Wl,--no-keep-files-mapped -Wl,--no-undefined -DANDROID -DDISABLE_DYNLOADING -shared -Wl,-soname,liblo-native-code.so -o $(OBJLOCAL)/liblo-native-code.so -I$(BUILDDIR)/config_host -I$(SRCDIR)/include native-code.cxx -L$(INSTDIR)/$(LIBO_LIB_FOLDER) $(WHOLELIBS) $(LIBS) -lc++_static -lc++abi -landroid_support $(if $(filter armeabi-v7a,$(ANDROID_APP_ABI)),-lunwind) $(addprefix -l,$(NSSLIBS)) -lGLESv2 -landroid -ljnigraphics -llog -lz + $(CXX) -Wl,--build-id=sha1 -Wl,--gc-sections -Wl,--version-script=../Bootstrap/version.map -Wl,--no-keep-files-mapped -Wl,--no-undefined -DANDROID -DDISABLE_DYNLOADING -shared -Wl,-soname,liblo-native-code.so -o $(OBJLOCAL)/liblo-native-code.so -I$(BUILDDIR)/config_host -I$(SRCDIR)/include native-code.cxx -L$(INSTDIR)/$(LIBO_LIB_FOLDER) $(WHOLELIBS) $(LIBS) -static-libstdc++ $(addprefix -l,$(NSSLIBS)) -lGLESv2 -landroid -ljnigraphics -llog -lz $(SODEST)/liblo-native-code.so : $(OBJLOCAL)/liblo-native-code.so mkdir -p $(SODEST) diff --git a/android/source/build.gradle b/android/source/build.gradle index e1358684b05a..1ea328c4e6cf 100644 --- a/android/source/build.gradle +++ b/android/source/build.gradle @@ -61,7 +61,7 @@ android { strippedUIEditing.assets.srcDirs 'assets_strippedUI' } defaultConfig { - minSdkVersion 14 + minSdkVersion 16 targetSdkVersion 26 vectorDrawables.useSupportLibrary = true } @@ -92,6 +92,10 @@ android { } fullUI.dimension "default" } + lintOptions { + // don't error-out on missing translations + warning 'MissingTranslation' + } } /* remark inherited from makefile: diff --git a/bridges/Library_cpp_uno.mk b/bridges/Library_cpp_uno.mk index 421483f08f42..4efba804b7d2 100644 --- a/bridges/Library_cpp_uno.mk +++ b/bridges/Library_cpp_uno.mk @@ -88,7 +88,7 @@ endif else ifeq ($(CPUNAME),GODSON) -ifneq ($(filter ANDROID LINUX,$(OS)),) +ifneq ($(filter LINUX,$(OS)),) bridges_SELECTED_BRIDGE := gcc3_linux_mips bridge_noopt_objects := cpp2uno uno2cpp bridge_exception_objects := except @@ -96,7 +96,7 @@ endif else ifeq ($(CPUNAME),GODSON64) -ifneq ($(filter ANDROID LINUX,$(OS)),) +ifneq ($(filter LINUX,$(OS)),) bridges_SELECTED_BRIDGE := gcc3_linux_mips64 bridge_asm_objects := call bridge_noopt_objects := cpp2uno uno2cpp diff --git a/configure.ac b/configure.ac index 8d03a0cb7729..1cdc3df08f80 100644 --- a/configure.ac +++ b/configure.ac @@ -397,64 +397,47 @@ if test -n "$with_android_ndk"; then 11.1.*|12.1.*|13.1.*|14.1.*) AC_MSG_ERROR([Building for Android is only supported with NDK versions above 16.x.*]) ;; - 16.*) + 16.*|17.*|18.*|19.*|20.*) ;; *) - AC_MSG_WARN([Untested Android NDK version $ANDROID_NDK_VERSION, only version 16.* have been used successfully. Proceed at your own risk.]) - add_warning "Untested Android NDK version $ANDROID_NDK_VERSION, only version 16.* have been used successfully. Proceed at your own risk." + AC_MSG_WARN([Untested Android NDK version $ANDROID_NDK_VERSION, only versions 16.* til 20.* have been used successfully. Proceed at your own risk.]) + add_warning "Untested Android NDK version $ANDROID_NDK_VERSION, only versions 16.* til 20.* have been used successfully. Proceed at your own risk." ;; esac - ANDROID_API_LEVEL=14 + ANDROID_API_LEVEL=16 android_cpu=$host_cpu - ANDROID_ARCH=$android_cpu if test $host_cpu = arm; then - android_platform_prefix=$android_cpu-linux-androideabi + android_platform_prefix=arm-linux-androideabi android_gnu_prefix=$android_platform_prefix - LLVM_TRIPLE=armv7-none-linux-androideabi + LLVM_TRIPLE=armv7a-linux-androideabi ANDROID_APP_ABI=armeabi-v7a ANDROIDCFLAGS="-mthumb -march=armv7-a -mfloat-abi=softfp -mfpu=neon -Wl,--fix-cortex-a8" elif test $host_cpu = aarch64; then - android_platform_prefix=$android_cpu-linux-android + android_platform_prefix=aarch64-linux-android android_gnu_prefix=$android_platform_prefix - LLVM_TRIPLE=aarch64-none-linux-android + LLVM_TRIPLE=$android_platform_prefix # minimum android version that supports aarch64 ANDROID_API_LEVEL=21 ANDROID_APP_ABI=arm64-v8a - ANDROID_ARCH=arm64 - elif test $host_cpu = mips; then - android_platform_prefix=mipsel-linux-android - android_gnu_prefix=$android_platform_prefix - LLVM_TRIPLE=mipsel-none-linux-android - ANDROID_APP_ABI=mips else # host_cpu is something like "i386" or "i686" I guess, NDK uses # "x86" in some contexts android_cpu=x86 android_platform_prefix=$android_cpu android_gnu_prefix=i686-linux-android - LLVM_TRIPLE=i686-none-linux-android + LLVM_TRIPLE=$android_gnu_prefix ANDROID_APP_ABI=x86 - ANDROID_ARCH=$android_cpu - ANDROIDCFLAGS="-march=atom" fi case "$with_android_ndk_toolchain_version" in clang5.0) ANDROID_GCC_TOOLCHAIN_VERSION=4.9 - ANDROID_BINUTILS_DIR=$ANDROID_NDK_HOME/toolchains/$android_platform_prefix-$ANDROID_GCC_TOOLCHAIN_VERSION - ANDROID_COMPILER_DIR=$ANDROID_NDK_HOME/toolchains/llvm ;; *) AC_MSG_ERROR([Unrecognized value for the --with-android-ndk-toolchain-version option. Building for Android is only supported with Clang 5.*]) esac - if test ! -d $ANDROID_BINUTILS_DIR; then - AC_MSG_ERROR([No directory $ANDROID_BINUTILS_DIR]) - elif test ! -d $ANDROID_COMPILER_DIR; then - AC_MSG_ERROR([No directory $ANDROID_COMPILER_DIR]) - fi - # NDK 15 or later toolchain is 64bit-only, except for Windows that we don't support. Using a 64-bit # linker is required if you compile large parts of the code with -g. A 32-bit linker just won't # manage to link the (app-specific) single huge .so that is built for the app in @@ -463,41 +446,37 @@ if test -n "$with_android_ndk"; then # all objects have been built with debug information.) case $build_os in linux-gnu*) - ndk_build_os=linux + android_HOST_TAG=linux-x86_64 ;; darwin*) - ndk_build_os=darwin + android_HOST_TAG=darwin-x86_64 ;; *) AC_MSG_ERROR([We only support building for Android from Linux or OS X]) + # ndk would also support windows and windows-x86_64 ;; esac - ANDROID_COMPILER_BIN=$ANDROID_COMPILER_DIR/prebuilt/$ndk_build_os-x86_64/bin - ANDROID_BINUTILS_PREBUILT_ROOT=$ANDROID_BINUTILS_DIR/prebuilt/$ndk_build_os-x86_64 + android_TOOLCHAIN=$ANDROID_NDK_HOME/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 AC_SUBST(ANDROID_BINUTILS_PREBUILT_ROOT) - test -z "$SYSBASE" && SYSBASE=$ANDROID_NDK_HOME/platforms/android-${ANDROID_API_LEVEL}/arch-${ANDROID_ARCH} - test -z "$AR" && AR=$ANDROID_BINUTILS_PREBUILT_ROOT/bin/$android_gnu_prefix-ar - test -z "$NM" && NM=$ANDROID_BINUTILS_PREBUILT_ROOT/bin/$android_gnu_prefix-nm - test -z "$OBJDUMP" && OBJDUMP=$ANDROID_BINUTILS_PREBUILT_ROOT/bin/$android_gnu_prefix-objdump - test -z "$RANLIB" && RANLIB=$ANDROID_BINUTILS_PREBUILT_ROOT/bin/$android_gnu_prefix-ranlib - test -z "$STRIP" && STRIP=$ANDROID_BINUTILS_PREBUILT_ROOT/bin/$android_gnu_prefix-strip - - ANDROIDCFLAGS="$ANDROIDCFLAGS -gcc-toolchain $ANDROID_BINUTILS_PREBUILT_ROOT -target $LLVM_TRIPLE$ANDROID_API_LEVEL -no-canonical-prefixes" - # android is using different sysroots for compilation and linking, but as - # there is no full separation in configure and elsewhere, use isystem for - # compilation stuff and sysroot for linking - ANDROIDCFLAGS="$ANDROIDCFLAGS -D__ANDROID_API__=$ANDROID_API_LEVEL -isystem $ANDROID_NDK_HOME/sysroot/usr/include" - ANDROIDCFLAGS="$ANDROIDCFLAGS -isystem $ANDROID_NDK_HOME/sysroot/usr/include/$android_gnu_prefix" - ANDROIDCFLAGS="$ANDROIDCFLAGS --sysroot=$SYSBASE -ffunction-sections -fdata-sections -Qunused-arguments" - ANDROIDCFLAGS="$ANDROIDCFLAGS -L$ANDROID_NDK_HOME/sources/cxx-stl/llvm-libc++/libs/$ANDROID_APP_ABI" + test -z "$AR" && AR=$ANDROID_COMPILER_BIN/$android_gnu_prefix-ar + test -z "$NM" && NM=$ANDROID_COMPILER_BIN/$android_gnu_prefix-nm + test -z "$OBJDUMP" && OBJDUMP=$ANDROID_COMPILER_BIN/$android_gnu_prefix-objdump + test -z "$RANLIB" && RANLIB=$ANDROID_COMPILER_BIN/$android_gnu_prefix-ranlib + test -z "$STRIP" && STRIP=$ANDROID_COMPILER_BIN/$android_gnu_prefix-strip + + ANDROIDCFLAGS="$ANDROIDCFLAGS -target ${LLVM_TRIPLE}${ANDROID_API_LEVEL}" + ANDROIDCFLAGS="$ANDROIDCFLAGS -no-canonical-prefixes -ffunction-sections -fdata-sections -Qunused-arguments" if test "$ENABLE_LTO" = TRUE; then # -flto comes from com_GCC_defs.mk, too, but we need to make sure it gets passed as part of # $CC and $CXX when building external libraries ANDROIDCFLAGS="$ANDROIDCFLAGS -flto -fuse-linker-plugin -O2" fi - ANDROIDCXXFLAGS="$ANDROIDCFLAGS -I$ANDROID_NDK_HOME/sources/cxx-stl/llvm-libc++/include -I$ANDROID_NDK_HOME/sources/cxx-stl/llvm-libc++abi/include -I$ANDROID_NDK_HOME/sources/android/support/include -std=c++11" + ANDROIDCXXFLAGS="$ANDROIDCFLAGS -stdlib=libc++" if test -z "$CC"; then CC="$ANDROID_COMPILER_BIN/clang $ANDROIDCFLAGS" @@ -811,7 +790,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/platforms/android-${ANDROID_API_LEVEL}/arch-${ANDROID_ARCH}/usr/lib/libc.a"; then + elif test ! -f "$ANDROID_NDK_HOME/meta/abis.json"; then AC_MSG_ERROR([the --with-android-ndk option does not point to an Android NDK]) fi @@ -4331,11 +4310,6 @@ linux-android*) RTL_ARCH=AARCH64 PLATFORMID=android_aarch64 ;; - mips|mipsel) - CPUNAME=GODSON # Weird, but maybe that's the LO convention? - RTL_ARCH=MIPS_EL - PLATFORMID=android_mips_el - ;; i*86) CPUNAME=INTEL RTL_ARCH=x86 diff --git a/external/nss/ExternalProject_nss.mk b/external/nss/ExternalProject_nss.mk index 211fa1d64437..e97756aca831 100644 --- a/external/nss/ExternalProject_nss.mk +++ b/external/nss/ExternalProject_nss.mk @@ -52,7 +52,7 @@ $(call gb_ExternalProject_get_state_target,nss,build): $(call gb_ExternalExecuta COMMA=$(COMMA) \ CC="$(CC)$(if $(filter ANDROID,$(OS)), -D_PR_NO_LARGE_FILES=1 -DSQLITE_DISABLE_LFS=1)" CCC="$(CXX)" \ $(if $(CROSS_COMPILING),NSINSTALL="$(call gb_ExternalExecutable_get_command,python) $(SRCDIR)/external/nss/nsinstall.py") \ - $(if $(filter ANDROID,$(OS)),OS_TARGET=Android OS_TARGET_RELEASE=14 ARCHFLAG="" DEFAULT_COMPILER=clang ANDROID_NDK=$(ANDROID_NDK_HOME) ANDROID_TOOLCHAIN_VERSION=$(ANDROID_GCC_TOOLCHAIN_VERSION) ANDROID_PREFIX=$(HOST_PLATFORM) ANDROID_SYSROOT=$(SYSBASE) 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_HOME) ANDROID_TOOLCHAIN_VERSION=$(ANDROID_GCC_TOOLCHAIN_VERSION) ANDROID_PREFIX=$(HOST_PLATFORM) ANDROID_SYSROOT=$(ANDROID_NDK_HOME)/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 \ diff --git a/external/owncloud-android-lib/build.gradle b/external/owncloud-android-lib/build.gradle index beb627fcc437..9203dc45a549 100644 --- a/external/owncloud-android-lib/build.gradle +++ b/external/owncloud-android-lib/build.gradle @@ -2,9 +2,17 @@ apply plugin: 'com.android.library' buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.android.tools.build:gradle:3.1.3' + } +} + +allprojects { + repositories { + jcenter() + google() } } @@ -18,11 +26,11 @@ android { } compileSdkVersion 26 - buildToolsVersion "26.0.1" + buildToolsVersion "27.0.3" defaultConfig { - minSdkVersion 14 - targetSdkVersion 24 + minSdkVersion 16 + targetSdkVersion 26 } sourceSets { diff --git a/solenv/gbuild/platform/ANDROID_GODSON_GCC.mk b/solenv/gbuild/platform/ANDROID_GODSON_GCC.mk deleted file mode 100644 index 0eb4f0a96e48..000000000000 --- a/solenv/gbuild/platform/ANDROID_GODSON_GCC.mk +++ /dev/null @@ -1,17 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -# -# This file is part of the LibreOffice project. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# - -# please make generic modifications to unxgcc.mk or android.mk -gb_CPUDEFS += -DMIPS -gb_COMPILEROPTFLAGS := -Os - -include $(GBUILDDIR)/platform/unxgcc.mk -include $(GBUILDDIR)/platform/android.mk - -# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/android.mk b/solenv/gbuild/platform/android.mk index 572a7c5b1028..3c25314639e1 100644 --- a/solenv/gbuild/platform/android.mk +++ b/solenv/gbuild/platform/android.mk @@ -9,14 +9,7 @@ ifeq ($(DISABLE_DYNLOADING),TRUE) -gb_STDLIBS := \ - -lc++_static \ - -lc++abi \ - -landroid_support \ - -else - -gb_STDLIBS := -lc++_shared +gb_STDLIBS := -static-libstdc++ endif |