cmake_minimum_required(VERSION 3.4.1) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++2a") add_library(androidapp SHARED androidapp.cpp ../../../../../common/Authorization.cpp ../../../../../common/ConfigUtil.cpp ../../../../../common/CommandControl.cpp ../../../../../common/Crypto-stub.cpp ../../../../../common/FileUtil.cpp ../../../../../common/Log.cpp ../../../../../common/MessageQueue.cpp ../../../../../common/TraceEvent.cpp ../../../../../common/Protocol.cpp ../../../../../common/Simd.cpp ../../../../../common/StringVector.cpp ../../../../../common/Session.cpp ../../../../../common/SigUtil.cpp ../../../../../common/SpookyV2.cpp ../../../../../common/Unit.cpp ../../../../../common/Util.cpp ../../../../../common/Util-mobile.cpp ../../../../../kit/ChildSession.cpp ../../../../../kit/DeltaSimd.c ../../../../../kit/Kit.cpp ../../../../../kit/KitWebSocket.cpp ../../../../../net/FakeSocket.cpp ../../../../../net/Socket.cpp ../../../../../wsd/ClientSession.cpp ../../../../../wsd/DocumentBroker.cpp ../../../../../wsd/COOLWSD.cpp ../../../../../wsd/ClientRequestDispatcher.cpp ../../../../../wsd/RequestDetails.cpp ../../../../../wsd/RequestVettingStation.cpp ../../../../../wsd/Storage.cpp ../../../../../wsd/TileCache.cpp ../../../../../wsd/coolwsd-fork.cpp) target_compile_definitions(androidapp PRIVATE COOLWSD_CONFIGDIR="/assets/etc/coolwsd") # 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@) set(POCOLIB_ABI @POCOLIB@) set(ZSTDINCLUDE_ABI @ZSTDINCLUDE@) set(ZSTDLIB_ABI @ZSTDLIB@) elseif(${ANDROID_ABI} STREQUAL "arm64-v8a") set(LOBUILDDIR_ABI @LOBUILDDIR_ARM64_V8A@) set(POCOINCLUDE_ABI @POCOINCLUDE_ARM64_V8A@) set(POCOLIB_ABI @POCOLIB_ARM64_V8A@) set(ZSTDINCLUDE_ABI @ZSTDINCLUDE_ARM64_V8A@) set(ZSTDLIB_ABI @ZSTDLIB_ARM64_V8A@) elseif(${ANDROID_ABI} STREQUAL "x86") set(LOBUILDDIR_ABI @LOBUILDDIR_X86@) set(POCOINCLUDE_ABI @POCOINCLUDE_X86@) set(POCOLIB_ABI @POCOLIB_X86@) set(ZSTDINCLUDE_ABI @ZSTDINCLUDE_X86@) set(ZSTDLIB_ABI @ZSTDLIB_X86@) elseif(${ANDROID_ABI} STREQUAL "x86_64") set(LOBUILDDIR_ABI @LOBUILDDIR_X86_64@) set(POCOINCLUDE_ABI @POCOINCLUDE_X86_64@) set(POCOLIB_ABI @POCOLIB_X86_64@) set(ZSTDINCLUDE_ABI @ZSTDINCLUDE_X86_64@) set(ZSTDLIB_ABI @ZSTDLIB_X86_64@) else() MESSAGE(FATAL_ERROR "Cannot build for ABI ${ANDROID_ABI}, please add support for that.") endif() set(LIBLO_NATIVE_CODE ${LOBUILDDIR_ABI}/android/jniLibs/${ANDROID_ABI}/liblo-native-code.so) target_include_directories(androidapp PRIVATE . # path to androidapp.h @abs_top_builddir@ # path to config.h @abs_top_srcdir@ ../../../../../common # the needed coolwsd includes ../../../../../kit ../../../../../net ../../../../../wsd ${POCOINCLUDE_ABI} # POCO ${ZSTDINCLUDE_ABI} # ZSTD ${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_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_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_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_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_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_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_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_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_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_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_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_ABI}/instdir/program/libssl3.so "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}" DEPENDS ${LOBUILDDIR_ABI}/instdir/program/libssl3.so COMMAND ${CMAKE_COMMAND} -E copy ${LIBLO_NATIVE_CODE} "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}" DEPENDS ${LIBLO_NATIVE_CODE} COMMENT "Copied liblo-native-code.so and its dependencies to the tree." ) add_custom_target(copy_native_code DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}/liblo-native-code.so") target_link_libraries(androidapp android log ${LOBUILDDIR_ABI}/workdir/LinkTarget/StaticLibrary/liblibpng.a ${POCOLIB_ABI}/libPocoEncodings@POCODEBUG@.a ${POCOLIB_ABI}/libPocoNet@POCODEBUG@.a ${POCOLIB_ABI}/libPocoUtil@POCODEBUG@.a ${POCOLIB_ABI}/libPocoXML@POCODEBUG@.a ${POCOLIB_ABI}/libPocoJSON@POCODEBUG@.a ${POCOLIB_ABI}/libPocoFoundation@POCODEBUG@.a ${ZSTDLIB_ABI}/libzstd.a "${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}/liblo-native-code.so" )