UNPKG

react-native-quick-crypto

Version:

A fast implementation of Node's `crypto` module written in C/C++ JSI

88 lines (79 loc) 2.98 kB
project(ReactNativeQuickCrypto) cmake_minimum_required(VERSION 3.10.2) set(PACKAGE_NAME "reactnativequickcrypto") set(BUILD_DIR ${CMAKE_SOURCE_DIR}/build) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_CXX_STANDARD 17) # set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g") # set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") # Third party libraries (Prefabs) find_package(fbjni REQUIRED CONFIG) find_package(ReactAndroid REQUIRED CONFIG) find_package(openssl REQUIRED CONFIG) find_library(LOG_LIB log) add_library( ${PACKAGE_NAME} SHARED "src/main/cpp/cpp-adapter.cpp" "../cpp/MGLQuickCryptoHostObject.cpp" "../cpp/JSIUtils/MGLTypedArray.cpp" "../cpp/Utils/MGLDispatchQueue.cpp" "../cpp/JSIUtils/MGLThreadAwareHostObject.cpp" "../cpp/JSIUtils/MGLSmartHostObject.cpp" "../cpp/HMAC/MGLHmacInstaller.cpp" "../cpp/HMAC/MGLHmacHostObject.cpp" "../cpp/fastpbkdf2/MGLPbkdf2HostObject.cpp" "../cpp/fastpbkdf2/fastpbkdf2.c" "../cpp/Random/MGLRandomHostObject.cpp" "../cpp/Hash/MGLHashInstaller.cpp" "../cpp/Hash/MGLHashHostObject.cpp" "../cpp/Cipher/MGLCipherHostObject.cpp" "../cpp/Cipher/MGLCreateCipherInstaller.cpp" "../cpp/Cipher/MGLCreateDecipherInstaller.cpp" "../cpp/MGLKeys.cpp" "../cpp/Utils/MGLUtils.cpp" "../cpp/Cipher/MGLRsa.cpp" "../cpp/Cipher/MGLGenerateKeyPairInstaller.cpp" "../cpp/Cipher/MGLGenerateKeyPairSyncInstaller.cpp" "../cpp/Sig/MGLSignInstaller.cpp" "../cpp/Sig/MGLVerifyInstaller.cpp" "../cpp/Sig/MGLSignHostObjects.cpp" "../cpp/webcrypto/MGLWebCrypto.cpp" "../cpp/webcrypto/crypto_aes.cpp" "../cpp/webcrypto/crypto_ec.cpp" "../cpp/webcrypto/crypto_keygen.cpp" ) target_include_directories( ${PACKAGE_NAME} PRIVATE "../cpp" "src/main/cpp" "${NODE_MODULES_DIR}/react-native/ReactCommon" "${NODE_MODULES_DIR}/react-native/ReactCommon/callinvoker" "${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/jni/react/turbomodule" "${NODE_MODULES_DIR}/react-native/ReactCommon/jsi" "${NODE_MODULES_DIR}/react-native/ReactCommon/turbomodule/core" "${NODE_MODULES_DIR}/react-native/ReactCommon/react/nativemodule/core" ) #file(GLOB LIBRN_DIR "${BUILD_DIR}/react-native-0*/jni/${ANDROID_ABI}") target_link_libraries( ${PACKAGE_NAME} fbjni::fbjni # <-- fbjni ${LOG_LIB} # <-- Logcat logger ReactAndroid::jsi # <-- RN: JSI android # <-- Android JNI core openssl::crypto # <-- OpenSSL (Crypto) ) if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76) target_link_libraries( ${PACKAGE_NAME} ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab ) else() target_link_libraries( ${PACKAGE_NAME} ReactAndroid::turbomodulejsijni ReactAndroid::reactnativejni # <-- RN: React Native JNI bindings ReactAndroid::react_nativemodule_core # <-- RN: React Native native module core ) endif()