collabora-online/android/lib/src/main/cpp/CMakeLists.txt.in

147 lines
7.4 KiB
CMake

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/FileUtil.cpp
../../../../../common/CommandControl.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"
)