[Libreoffice-commits] online.git: android/app android/lib android/README configure.ac

Jan Holesovsky (via logerrit) logerrit at kemper.freedesktop.org
Mon Dec 30 13:24:49 UTC 2019


 android/README                             |   11 +++
 android/app/appSettings.gradle.in          |    1 
 android/app/build.gradle                   |    7 +-
 android/lib/build.gradle                   |    7 +-
 android/lib/libSettings.gradle.in          |    1 
 android/lib/src/main/cpp/CMakeLists.txt.in |   87 ++++++++++++++++------------
 configure.ac                               |   89 +++++++++++++++++++++++++----
 7 files changed, 149 insertions(+), 54 deletions(-)

New commits:
commit d556760c2f7ca731c428c4c8fa081ed7a1dfbb4b
Author:     Jan Holesovsky <kendy at collabora.com>
AuthorDate: Mon Nov 25 21:34:21 2019 +0100
Commit:     Jan Holesovsky <kendy at collabora.com>
CommitDate: Mon Dec 30 14:24:30 2019 +0100

    android: Implement (optional) support for both 32bit and 64bit build.
    
    This adds possiblity to specify additional build trees for LibreOffice
    and POCO that contain the 64bit version, like:
    
        --with-lo-builddir=/local/libreoffice/master-android-release:/local/libreoffice/master-android-release-64bit \
        --with-poco-includes=/opt/poco-android/include:/opt/poco-android-64bit/include \
        --with-poco-libs=/opt/poco-android/lib:/opt/poco-android-64bit/lib \
    
    which triggers both 32bit and 64bit build.
    
    It should be still possible to build just 32bit when used without the
    semicolons - which is useful for the normal development.
    
    Change-Id: I99145e57f0cc15f022c05d09f8c4ab275880d44b
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/84312
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>
    Tested-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/android/README b/android/README
index 4606ef3a3..339593151 100644
--- a/android/README
+++ b/android/README
@@ -82,6 +82,17 @@ build the native parts on Windows.
   + Open this 'android' subdir as a project
   + Build from Android Studio (Build -> Make Project)
 
+== Building 32bit + 64bit combined .apk ==
+
+  + you need to build both a 32bit (armeabi-v7a) and 64bit (arm64-v8a) core
+  + you need to build both a 32bit and 64bit POCO
+  + and then provide paths to both to the ./configure, separated by a colon ':',
+    like:
+
+    --with-lo-builddir=/local/libreoffice/master-android-release:/local/libreoffice/master-android-release-64bit \
+    --with-poco-includes=/opt/poco-android/include:/opt/poco-android-64bit/include \
+    --with-poco-libs=/opt/poco-android/lib:/opt/poco-android-64bit/lib \
+
 == Debugging ==
 
 To debug the native code in Android Studio, you need the debugging symbols and
diff --git a/android/app/appSettings.gradle.in b/android/app/appSettings.gradle.in
index 4ce26c221..a4e89c24f 100644
--- a/android/app/appSettings.gradle.in
+++ b/android/app/appSettings.gradle.in
@@ -6,6 +6,7 @@ ext {
     liboInfoURL         = '@INFO_URL@'
     liboLauncherIcon    = '@mipmap/@APP_IC_LAUNCHER@'
     liboHasBranding     = '@APP_HAS_BRANDING@'
+    liboAndroidAbi      = '@ANDROID_ABI@'
 }
 android.defaultConfig {
     applicationId '@ANDROID_PACKAGE_NAME@'
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 2a8c7e2e1..ae84e6495 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -20,8 +20,8 @@ android {
             manifestPlaceholders = [ appIcon: "${liboLauncherIcon}" ]
             buildConfigField "boolean", "APP_HAS_BRANDING", "${liboHasBranding}"
             ndk {
-                //abiFilters "x86", "armeabi-v7a", "armeabi"
-                abiFilters "armeabi-v7a"
+                abiFilters = []
+                abiFilters.addAll("${liboAndroidAbi}".split(' ').collect{it as String})
             }
             applicationIdSuffix '.debug'
             versionNameSuffix '-debug'
@@ -34,7 +34,8 @@ android {
             manifestPlaceholders = [ appIcon: "${liboLauncherIcon}" ]
             buildConfigField "boolean", "APP_HAS_BRANDING", "${liboHasBranding}"
             ndk {
-                abiFilters "armeabi-v7a"
+                abiFilters = []
+                abiFilters.addAll("${liboAndroidAbi}".split(' ').collect{it as String})
             }
             minifyEnabled false // FIXME disabled before we get a good proguardRules for callFakeWebsocketOnMessage calling from C++
             shrinkResources false // FIXME cannot be enabled when minifyEnabled is turned off
diff --git a/android/lib/build.gradle b/android/lib/build.gradle
index 997bdfd23..c9e953e0c 100644
--- a/android/lib/build.gradle
+++ b/android/lib/build.gradle
@@ -22,15 +22,16 @@ android {
         debug {
             buildConfigField "String", "GIT_COMMIT", "\"${liboGitFullCommit}\""
             ndk {
-                //abiFilters "x86", "armeabi-v7a", "armeabi"
-                abiFilters "armeabi-v7a"
+                abiFilters = []
+                abiFilters.addAll("${liboAndroidAbi}".split(' ').collect{it as String})
             }
             debuggable true
         }
         release {
             buildConfigField "String", "GIT_COMMIT", "\"${liboGitFullCommit}\""
             ndk {
-                abiFilters "armeabi-v7a"
+                abiFilters = []
+                abiFilters.addAll("${liboAndroidAbi}".split(' ').collect{it as String})
             }
             minifyEnabled false // FIXME disabled before we get a good proguardRules for callFakeWebsocketOnMessage calling from C++
             shrinkResources false // FIXME cannot be enabled when minifyEnabled is turned off
diff --git a/android/lib/libSettings.gradle.in b/android/lib/libSettings.gradle.in
index bd40967c3..d492e0389 100644
--- a/android/lib/libSettings.gradle.in
+++ b/android/lib/libSettings.gradle.in
@@ -9,4 +9,5 @@ ext {
     liboVersionMinor    = '@LOOLWSD_VERSION_MAJOR@'
     liboGitFullCommit   = '@LOOLWSD_VERSION_HASH@'
     liboApplicationId   = '@ANDROID_PACKAGE_NAME@'
+    liboAndroidAbi      = '@ANDROID_ABI@'
 }
diff --git a/android/lib/src/main/cpp/CMakeLists.txt.in b/android/lib/src/main/cpp/CMakeLists.txt.in
index cb1f31c8d..2d5dc09e1 100644
--- a/android/lib/src/main/cpp/CMakeLists.txt.in
+++ b/android/lib/src/main/cpp/CMakeLists.txt.in
@@ -23,6 +23,19 @@ add_library(androidapp SHARED
 
 target_compile_definitions(androidapp PRIVATE LOOLWSD_CONFIGDIR="/etc/loolwsd") # TODO somewhere in assets maybe?
 
+# According to the ABI, we need to use different source trees
+if(${ANDROID_ABI} STREQUAL "armeabi-v7a")
+    set(LOBUILDDIR_ABI @LOBUILDDIR@)
+    set(POCOINCLUDE_ABI ${POCOINCLUDE_ABI})
+    set(POCOLIB_ABI @POCOLIB@)
+elseif(${ANDROID_ABI} STREQUAL "arm64-v8a")
+    set(LOBUILDDIR_ABI @LOBUILDDIR_ARM64_V8A@)
+    set(POCOINCLUDE_ABI @POCOINCLUDE_ARM64_V8A@)
+    set(POCOLIB_ABI @POCOLIB_ARM64_V8A@)
+else()
+    MESSAGE(FATAL_ERROR "Cannot build for ABI ${ANDROID_ABI}, please add support for that.")
+endif()
+
 target_include_directories(androidapp PRIVATE
                            .                     # path to androidapp.h
                            ../../../../..        # path to config.h
@@ -30,51 +43,51 @@ target_include_directories(androidapp PRIVATE
                            ../../../../../kit
                            ../../../../../net
                            ../../../../../wsd
-                           @POCOINCLUDE@         # POCO
-                           @LIBPNG_INCLUDES@     # libpng
-                           @LOKIT_PATH@          # LibreOfficeKit
+                           ${POCOINCLUDE_ABI}         # POCO
+                           ${LOBUILDDIR_ABI}/workdir/UnpackedTarball/libpng # libpng
+                           ${LOBUILDDIR_ABI}/include                        # LibreOfficeKit
 )
 
 add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}/liblo-native-code.so"
                    COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libfreebl3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libfreebl3.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libfreebl3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libfreebl3.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libnspr4.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libnspr4.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libnspr4.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libnspr4.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libnss3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libnss3.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libnss3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libnss3.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libnssckbi.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libnssckbi.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libnssckbi.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libnssckbi.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libnssdbm3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libnssdbm3.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libnssdbm3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libnssdbm3.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libnssutil3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libnssutil3.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libnssutil3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libnssutil3.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libplc4.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libplc4.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libplc4.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libplc4.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libplds4.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libplds4.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libplds4.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libplds4.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libsmime3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libsmime3.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libsmime3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libsmime3.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libsoftokn3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libsoftokn3.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libsoftokn3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libsoftokn3.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libsqlite3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libsqlite3.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libsqlite3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libsqlite3.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/instdir/program/libssl3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/instdir/program/libssl3.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/instdir/program/libssl3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libssl3.so
 
-                   COMMAND ${CMAKE_COMMAND} -E copy @LOBUILDDIR@/android/source/jniLibs/${ANDROID_ABI}/liblo-native-code.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
-                   DEPENDS @LOBUILDDIR@/android/source/jniLibs/${ANDROID_ABI}/liblo-native-code.so
+                   COMMAND ${CMAKE_COMMAND} -E copy ${LOBUILDDIR_ABI}/android/source/jniLibs/${ANDROID_ABI}/liblo-native-code.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}"
+                   DEPENDS ${LOBUILDDIR_ABI}/android/source/jniLibs/${ANDROID_ABI}/liblo-native-code.so
 
                    COMMENT "Copied liblo-native-code.so and its dependencies to the tree."
 )
@@ -85,13 +98,13 @@ add_custom_target(copy_native_code DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/lib/${AN
 target_link_libraries(androidapp
                       android
                       log
-                      @LIBPNG_LIBS@/liblibpng.a
-                      @POCOLIB@/libPocoEncodings at POCODEBUG@.a
-                      @POCOLIB@/libPocoNet at POCODEBUG@.a
-                      @POCOLIB@/libPocoRedis at POCODEBUG@.a
-                      @POCOLIB@/libPocoUtil at POCODEBUG@.a
-                      @POCOLIB@/libPocoXML at POCODEBUG@.a
-                      @POCOLIB@/libPocoJSON at POCODEBUG@.a
-                      @POCOLIB@/libPocoFoundation at POCODEBUG@.a
+                      ${LOBUILDDIR_ABI}/workdir/LinkTarget/StaticLibrary/liblibpng.a
+                      ${POCOLIB_ABI}/libPocoEncodings at POCODEBUG@.a
+                      ${POCOLIB_ABI}/libPocoNet at POCODEBUG@.a
+                      ${POCOLIB_ABI}/libPocoRedis at POCODEBUG@.a
+                      ${POCOLIB_ABI}/libPocoUtil at POCODEBUG@.a
+                      ${POCOLIB_ABI}/libPocoXML at POCODEBUG@.a
+                      ${POCOLIB_ABI}/libPocoJSON at POCODEBUG@.a
+                      ${POCOLIB_ABI}/libPocoFoundation at POCODEBUG@.a
                       "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}/liblo-native-code.so"
 )
diff --git a/configure.ac b/configure.ac
index 4109b14fc..9b1b50a91 100644
--- a/configure.ac
+++ b/configure.ac
@@ -175,7 +175,10 @@ AC_ARG_WITH([lo-builddir],
                             In case of macOS, you MUST manually edit the ios/Mobile.xcodeproj/project.pbxproj
                             file and change the references to "../ios-device" to refer to the corresponding
                             LibreOffice core source directory (which typically would be the same as the build
-                            directory you specify with this option).]))
+                            directory you specify with this option).
+                            In case of Android, you can provide 2 builddirs
+                            separated by a colon ':' - the first is for
+                            armeabi-v7a, the second is for arm64-v8a]))
 
 AC_ARG_WITH([logfile],
             AS_HELP_STRING([--with-logfile=<path>],
@@ -183,19 +186,25 @@ AC_ARG_WITH([logfile],
 
 AC_ARG_WITH([poco-includes],
             AS_HELP_STRING([--with-poco-includes=<path>],
-                           [Path to the "include" directory with the Poco headers]))
+                           [Path to the "include" directory with the Poco
+                            headers.  If you are building for Android 64bit,
+                            you need two, separated by a colon ':'.]))
 
 AC_ARG_WITH([poco-libs],
             AS_HELP_STRING([--with-poco-libs=<path>],
-                           [Path to the "lib" directory with the Poco libraries]))
+                           [Path to the "lib" directory with the Poco
+                            libraries.  If you are building for Android 64bit,
+                            you need two, separated by a colon ':'.]))
 
 AC_ARG_WITH([libpng-includes],
             AS_HELP_STRING([--with-libpng-includes=<path>],
-                           [Path to the "include" directory with the libpng headers]))
+                           [Path to the "include" directory with the libpng
+                            headers.  Not used on Android.]))
 
 AC_ARG_WITH([libpng-libs],
             AS_HELP_STRING([--with-libpng-libs=<path>],
-                           [Path to the "lib" directory with the libpng libraries]))
+                           [Path to the "lib" directory with the libpng
+                            libraries.  Not used on Android.]))
 
 AC_ARG_WITH([cppunit-includes],
             AS_HELP_STRING([--with-cppunit-includes=<path>],
@@ -303,8 +312,12 @@ fi
 # to the Mac.
 # Android: We need these to setup the CMakeLists.txt properly.
 LOBUILDDIR=
+ANDROID_ABI="armeabi-v7a"
+LOBUILDDIR_ARM64_V8A=
 POCOINCLUDE=
+POCOINCLUDE_ARM64_V8A=
 POCOLIB=
+POCOLIB_ARM64_V8A=
 POCODEBUG=
 if test \( "$enable_iosapp" = "yes" -a `uname -s` = "Darwin" \) -o \( "$enable_androidapp" = "yes" \); then
    AC_MSG_CHECKING([for LibreOffice build tree to build against])
@@ -313,6 +326,23 @@ if test \( "$enable_iosapp" = "yes" -a `uname -s` = "Darwin" \) -o \( "$enable_a
    fi
 
    LOBUILDDIR="$with_lo_builddir"
+   if test "$enable_androidapp" = "yes" ; then
+       if echo "$LOBUILDDIR" | grep -qs ':' ; then
+           ANDROID_ABI="armeabi-v7a arm64-v8a"
+           LOBUILDDIR=`echo $with_lo_builddir | sed 's/:.*//'`
+           LOBUILDDIR_ARM64_V8A=`echo $with_lo_builddir | sed 's/^.*://'`
+       fi
+
+       # Sanity check, just a random object file in the LibreOffice build tree - 64bit
+       if test "$ANDROID_ABI" != "armeabi-v7a" ; then
+           if test -f "$LOBUILDDIR_ARM64_V8A/workdir/LinkTarget/StaticLibrary/liblibpng.a" ; then
+               AC_MSG_RESULT([$LOBUILDDIR_ARM64_V8A])
+           else
+               AC_MSG_ERROR([This is not a LibreOffice 64bit core build directory: $LOBUILDDIR_ARM64_V8A])
+           fi
+       fi
+   fi
+
    # Sanity check, just a random object file in the LibreOffice build tree
    if test \( "$enable_iosapp" = "yes" -a -f "$LOBUILDDIR/workdir/CxxObject/vcl/ios/iosinst.o" \) -o \( "$enable_androidapp" = "yes" -a -f "$LOBUILDDIR/workdir/LinkTarget/StaticLibrary/liblibpng.a" \); then
        AC_MSG_RESULT([$LOBUILDDIR])
@@ -326,6 +356,22 @@ if test \( "$enable_iosapp" = "yes" -a `uname -s` = "Darwin" \) -o \( "$enable_a
    fi
 
    POCOINCLUDE="$with_poco_includes"
+   if test "$enable_androidapp" = "yes" ; then
+       if echo "$POCOINCLUDE" | grep -qs ':' ; then
+           POCOINCLUDE=`echo $with_poco_includes | sed 's/:.*//'`
+           POCOINCLUDE_ARM64_V8A=`echo $with_poco_includes | sed 's/^.*://'`
+       fi
+
+       # Sanity check - 64bit
+       if test "$ANDROID_ABI" != "armeabi-v7a" ; then
+           if test -f "$POCOINCLUDE_ARM64_V8A/Poco/Poco.h"; then
+               AC_MSG_RESULT([$POCOINCLUDE_ARM64_V8A])
+           else
+               AC_MSG_ERROR([This is not a Poco 64bit include directory: $POCOINCLUDE_ARM64_V8A])
+           fi
+       fi
+   fi
+
    # Sanity check
    if test -f "$POCOINCLUDE/Poco/Poco.h"; then
        AC_MSG_RESULT([$POCOINCLUDE])
@@ -339,6 +385,22 @@ if test \( "$enable_iosapp" = "yes" -a `uname -s` = "Darwin" \) -o \( "$enable_a
    fi
 
    POCOLIB="$with_poco_libs"
+   if test "$enable_androidapp" = "yes" ; then
+       if echo "$POCOLIB" | grep -qs ':' ; then
+           POCOLIB=`echo $with_poco_libs | sed 's/:.*//'`
+           POCOLIB_ARM64_V8A=`echo $with_poco_libs | sed 's/^.*://'`
+       fi
+
+       # Sanity check - 64bit
+       if test "$ANDROID_ABI" != "armeabi-v7a" ; then
+           if test -f "$POCOLIB_ARM64_V8A/libPocoFoundation.a"; then
+               AC_MSG_RESULT([$POCOLIB_ARM64_V8A])
+           else
+               AC_MSG_ERROR([This is not a Poco 64bit lib directory: $POCOLIB_ARM64_V8A])
+           fi
+       fi
+   fi
+
    # Sanity check
    if test -f "$POCOLIB/libPocoFoundation.a"; then
        AC_MSG_RESULT([$POCOLIB])
@@ -351,21 +413,26 @@ if test \( "$enable_iosapp" = "yes" -a `uname -s` = "Darwin" \) -o \( "$enable_a
    fi
 fi
 AC_SUBST(LOBUILDDIR)
+AC_SUBST(ANDROID_ABI)
+AC_SUBST(LOBUILDDIR_ARM64_V8A)
 AC_SUBST(POCOINCLUDE)
+AC_SUBST(POCOINCLUDE_ARM64_V8A)
 AC_SUBST(POCOLIB)
+AC_SUBST(POCOLIB_ARM64_V8A)
 AC_SUBST(POCODEBUG)
 
 LIBPNG_INCLUDES="$with_libpng_includes"
 LIBPNG_LIBS="$with_libpng_libs"
 LOKIT_PATH=`readlink -f $with_lokit_path`
 if test "$enable_androidapp" = "yes"; then
-   if test -z "$LIBPNG_INCLUDES" ; then
-      LIBPNG_INCLUDES="$LOBUILDDIR/workdir/UnpackedTarball/libpng"
+   if test -n "$LIBPNG_INCLUDES" ; then
+      AC_MSG_ERROR([--with-libpng-includes is ignored on Android, please remove the parameter.])
    fi
-   if test -z "$LIBPNG_LIBS" ; then
-      LIBPNG_LIBS="$LOBUILDDIR/workdir/LinkTarget/StaticLibrary"
+   if test -n "$LIBPNG_LIBS" ; then
+      AC_MSG_ERROR([--with-libpng-libs is ignored on Android, please remove the parameter.])
    fi
-   if test -z "$LOKIT_PATH" ; then
+   if test -n "$LOKIT_PATH" ; then
+      AC_MSG_ERROR([--with-lokit-path is ignored on Android, please remove the parameter.])
       LOKIT_PATH=`readlink -f $LOBUILDDIR/include`
    fi
 fi
@@ -733,7 +800,7 @@ LIBS="$LIBS -lPocoNet${POCO_DEBUG_SUFFIX} -lPocoNetSSL${POCO_DEBUG_SUFFIX} -lPoc
 AS_IF([test "$ENABLE_SSL" = "true"],
       [LIBS="$LIBS -lssl -lcrypto"])
 
-AS_IF([test "$ENABLE_IOSAPP" != "true"],
+AS_IF([test "$ENABLE_IOSAPP" != "true" -a "$ENABLE_ANDROIDAPP" != "true"],
       [AC_CHECK_HEADERS([LibreOfficeKit/LibreOfficeKit.h],
                         [],
                         [AC_MSG_ERROR([header LibreOfficeKit/LibreOfficeKit.h not found, perhaps you want to use --with-lokit-path])])


More information about the Libreoffice-commits mailing list