148 lines
7.5 KiB
CMake
148 lines
7.5 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/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"
|
|
)
|