diff --git a/native/android/app/CMakeLists.txt b/native/android/app/CMakeLists.txt --- a/native/android/app/CMakeLists.txt +++ b/native/android/app/CMakeLists.txt @@ -19,6 +19,7 @@ # Gradle automatically packages shared libraries with your APK. set(PACKAGE_NAME "comm_jni_module") +find_library(log-lib log) find_package(fbjni REQUIRED CONFIG) set(BUILD_TESTING OFF) @@ -94,6 +95,7 @@ set(_node_modules_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../node_modules) set(_react_native_dir ${_node_modules_dir}/react-native) +set(_android_cpp_source_dir ${CMAKE_CURRENT_SOURCE_DIR}/src/cpp) add_subdirectory(../../cpp/CommonCpp/ ${CMAKE_CURRENT_BINARY_DIR}/build/CommonCpp @@ -103,7 +105,16 @@ file(GLOB SQLCIPHER "${_node_modules_dir}/@commapp/sqlcipher-amalgamation/src/*.c" ) -file(GLOB ANDROID_NATIVE_CODE "./src/cpp/*.cpp") + +# Add files which aren't a part of comm-tools +list(APPEND ANDROID_NATIVE_CODE + "./src/cpp/DatabaseInitializerJNIHelper.cpp" + "./src/cpp/GlobalDBSingleton.cpp" + "./src/cpp/jsiInstaller.cpp" + "./src/cpp/MessageOperationsUtilitiesJNIHelper.cpp" + "./src/cpp/TerminateApp.cpp" + "./src/cpp/ThreadOperationsJNIHelper.cpp" +) set(GENERATED_NATIVE_CODE "../../cpp/CommonCpp/_generated/commJSI-generated.cpp") file(GLOB CRYPTO_NATIVE_CODE "../../cpp/CommonCpp/CryptoTools/*.cpp") @@ -111,7 +122,6 @@ file(GLOB DB_ENTITIES_NATIVE_CODE "../../cpp/CommonCpp/DatabaseManagers/entities/*.cpp") file(GLOB_RECURSE MODULE_NATIVE_CODE "../../cpp/CommonCpp/NativeModules/**/*.cpp") file(GLOB MODULE_ROOT_NATIVE_CODE "../../cpp/CommonCpp/NativeModules/*.cpp") -file(GLOB TOOLS_NATIVE_CODE "../../cpp/CommonCpp/Tools/*.cpp") add_library( # Sets the name of the library @@ -176,7 +186,6 @@ ../../cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities ../../cpp/CommonCpp/NativeModules/PersistentStorageUtilities/MessageOperationsUtilities/MessageSpecs ../../cpp/CommonCpp/DatabaseManagers - ../../cpp/CommonCpp/Tools # native rust library ${native_rust_library_include_dir} @@ -190,8 +199,6 @@ -DSQLCIPHER_CRYPTO_OPENSSL ) -find_library(log-lib log) - target_link_libraries( ${PACKAGE_NAME} fbjni::fbjni @@ -203,6 +210,7 @@ openssl-crypto openssl-ssl comm::native_rust_library + comm-tools ) # add a dummy library which is required by CallInvokerHolderImpl.java diff --git a/native/android/app/build.gradle b/native/android/app/build.gradle --- a/native/android/app/build.gradle +++ b/native/android/app/build.gradle @@ -401,7 +401,7 @@ // Release keystore via macOS Keychain Access def getPassword(String keyLabel) { if (System.getenv('ANDROID_SIGNING_PASSWORD')) { - return System.getenv('ANDROID_SIGNING_PASSWORD') + return System.getenv('ANDROID_SIGNING_PASSWORD') } def stdout = new ByteArrayOutputStream() exec { @@ -419,7 +419,7 @@ // or only from 'adb devices' if running debug release. def getBuildTypeABIs(nativeArchitectures) { if (System.getenv("BUILDKITE") == "true") { - return ["arm64-v8a"] + return ["arm64-v8a"] } def isBundleRelease = gradle.startParameter.taskRequests.any { !it.args.isEmpty() && it.args.first().contains("bundleRelease") @@ -598,7 +598,7 @@ "-DNDK_VERSION=" + rootProject.ext.ndkVersion, "-DREACT_NATIVE_SO_DIR=${REACT_NATIVE_SO_DIR}", "-DBOOST_VERSION=${BOOST_VERSION}" - targets "comm_jni_module", "turbomodulejsijni" + targets "comm_jni_module", "turbomodulejsijni", "comm-tools" } } } diff --git a/native/android/app/src/main/java/app/comm/android/MainApplication.java b/native/android/app/src/main/java/app/comm/android/MainApplication.java --- a/native/android/app/src/main/java/app/comm/android/MainApplication.java +++ b/native/android/app/src/main/java/app/comm/android/MainApplication.java @@ -31,6 +31,7 @@ static { System.loadLibrary("fbjni"); + System.loadLibrary("comm-tools"); System.loadLibrary("comm_jni_module"); } diff --git a/native/cpp/CommonCpp/Tools/CMakeLists.txt b/native/cpp/CommonCpp/Tools/CMakeLists.txt --- a/native/cpp/CommonCpp/Tools/CMakeLists.txt +++ b/native/cpp/CommonCpp/Tools/CMakeLists.txt @@ -12,15 +12,24 @@ set(TOOLS_SRCS "WorkerThread.cpp" + + # Can be moved to local directory in https://linear.app/comm/issue/ENG-2996 + ${_android_cpp_source_dir}/CommSecureStore.cpp + ${_android_cpp_source_dir}/Logger.cpp + ${_android_cpp_source_dir}/PlatformSpecificTools.cpp ) add_library(comm-tools + SHARED ${TOOLS_HDRS} ${TOOLS_SRCS} ) target_link_libraries(comm-tools + fbjni::fbjni Folly::folly + Olm::Olm + ${log-lib} ) target_include_directories(comm-tools