UNPKG

@eversurf/dengine-rn-jsi

Version:

Dengine React Native JSI

108 lines (96 loc) 3.06 kB
cmake_minimum_required(VERSION 3.4.1) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_FLAGS "-DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_HAVE_MEMRCHR=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1") set(PACKAGE_NAME denginejsi) set(BUILD_DIR ${CMAKE_SOURCE_DIR}/build) set(LIBRN_DIR ${PREBUILT_DIR}/${ANDROID_ABI}) if(${REACT_NATIVE_VERSION} LESS 64) # for React Native < 0.64.0 set(TURBOMODULE_DIR ${NODE_MODULES_DIR}/react-native/ReactCommon/turbomodule/core/) add_library(turbomodulejsijni SHARED ../cpp/empty.cpp) else() # for React Native >= 0.64.0 set(TURBOMODULE_DIR ${NODE_MODULES_DIR}/react-native/ReactCommon/react/nativemodule/core/ReactCommon) endif() if(${REACT_NATIVE_VERSION} LESS 66) set(INCLUDE_JSI_CPP "${NODE_MODULES_DIR}/react-native/ReactCommon/jsi/jsi/jsi.cpp") set(INCLUDE_JSIDYNAMIC_CPP "${NODE_MODULES_DIR}/react-native/ReactCommon/jsi/jsi/JSIDynamic.cpp") endif() add_library(${PACKAGE_NAME} SHARED ${INCLUDE_JSI_CPP} # only on older RN versions ${INCLUDE_JSIDYNAMIC_CPP} # only on older RN versions ${TURBOMODULE_DIR}/TurboModule.cpp ${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/CallInvokerHolder.cpp ../cpp/Blob.cpp ../cpp/Blob.h ../cpp/BlobManager.cpp ../cpp/BlobManager.h ../cpp/base64.h ../cpp/NativeModules.cpp ../cpp/NativeModules.h ../cpp/DebotClientJsiModule.h ../cpp/request_data_t.h ../cpp/debotclient.h ../cpp/DebotClientJsiModule.cpp cpp-adapter.cpp ) find_package(fbjni REQUIRED CONFIG) target_include_directories( ${PACKAGE_NAME} PRIVATE ${NODE_MODULES_DIR}/react-native/React ${NODE_MODULES_DIR}/react-native/React/Base ${NODE_MODULES_DIR}/react-native/ReactCommon ${NODE_MODULES_DIR}/react-native/ReactCommon/jsi ${NODE_MODULES_DIR}/react-native/ReactCommon/callinvoker ${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon ${TURBOMODULE_DIR} # --- Third Party (required by RN) --- "${BUILD_DIR}/third-party-ndk/boost" "${BUILD_DIR}/third-party-ndk/double-conversion" "${BUILD_DIR}/third-party-ndk/folly" "${BUILD_DIR}/third-party-ndk/glog" ../cpp ) if(${REACT_NATIVE_VERSION} LESS 66) # JSI lib didn't exist on RN 0.65 and before. Simply omit it. set(JSI_LIB "") else() # RN 0.66 distributes libjsi.so, can be used instead of compiling jsi.cpp manually. find_library( JSI_LIB jsi PATHS ${LIBRN_DIR} NO_CMAKE_FIND_ROOT_PATH ) endif() if(${REACT_NATIVE_VERSION} LESS 69) find_library( FOLLY_LIB folly_json PATHS ${LIBRN_DIR} NO_CMAKE_FIND_ROOT_PATH ) else() find_library( FOLLY_LIB folly_runtime PATHS ${LIBRN_DIR} NO_CMAKE_FIND_ROOT_PATH ) endif() find_library( GLOG_LIB glog PATHS ${LIBRN_DIR} NO_CMAKE_FIND_ROOT_PATH ) target_link_libraries(${PACKAGE_NAME} fbjni::fbjni ${JSI_LIB} ${FOLLY_LIB} ${GLOG_LIB} ${PROJECT_SOURCE_DIR}/src/main/jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libdengine.so )