chore: Drop support for RN < 71 to simplify buildscript
This commit is contained in:
parent
9963f4dedc
commit
28a43f716f
@ -4,36 +4,17 @@ cmake_minimum_required(VERSION 3.4.1)
|
|||||||
set (CMAKE_VERBOSE_MAKEFILE ON)
|
set (CMAKE_VERBOSE_MAKEFILE ON)
|
||||||
set (CMAKE_CXX_STANDARD 14)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
if(${REACT_NATIVE_VERSION} GREATER_EQUAL 71)
|
include("${NODE_MODULES_DIR}/react-native/ReactAndroid/cmake-utils/folly-flags.cmake")
|
||||||
include("${NODE_MODULES_DIR}/react-native/ReactAndroid/cmake-utils/folly-flags.cmake")
|
add_compile_options(${folly_FLAGS})
|
||||||
add_compile_options(${folly_FLAGS})
|
|
||||||
else()
|
|
||||||
set (CMAKE_CXX_FLAGS "-DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_HAVE_MEMRCHR=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1 -DON_ANDROID -DONANDROID -DFOR_HERMES=${FOR_HERMES}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
set (PACKAGE_NAME "VisionCamera")
|
set (PACKAGE_NAME "VisionCamera")
|
||||||
set (BUILD_DIR ${CMAKE_SOURCE_DIR}/build)
|
set (BUILD_DIR ${CMAKE_SOURCE_DIR}/build)
|
||||||
if(${REACT_NATIVE_VERSION} GREATER_EQUAL 71)
|
# Consume shared libraries and headers from prefabs
|
||||||
# Consume shared libraries and headers from prefabs
|
find_package(fbjni REQUIRED CONFIG)
|
||||||
find_package(fbjni REQUIRED CONFIG)
|
find_package(ReactAndroid REQUIRED CONFIG)
|
||||||
find_package(ReactAndroid REQUIRED CONFIG)
|
|
||||||
else()
|
|
||||||
set (RN_SO_DIR ${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/jni/first-party/react/jni)
|
|
||||||
endif()
|
|
||||||
# VisionCamera shared
|
# VisionCamera shared
|
||||||
|
|
||||||
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(
|
add_library(
|
||||||
${PACKAGE_NAME}
|
${PACKAGE_NAME}
|
||||||
SHARED
|
SHARED
|
||||||
@ -49,72 +30,27 @@ add_library(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# includes
|
# includes
|
||||||
if(${REACT_NATIVE_VERSION} GREATER_EQUAL 71)
|
target_include_directories(
|
||||||
target_include_directories(
|
${PACKAGE_NAME}
|
||||||
${PACKAGE_NAME}
|
PRIVATE
|
||||||
PRIVATE
|
"${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/jni/react/turbomodule"
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/jni/react/turbomodule"
|
"${NODE_MODULES_DIR}/react-native/ReactCommon"
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactCommon"
|
"${NODE_MODULES_DIR}/react-native/ReactCommon/callinvoker"
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactCommon/callinvoker"
|
"${NODE_MODULES_DIR}/react-native/ReactCommon/jsi"
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactCommon/jsi"
|
"${NODE_MODULES_DIR}/react-native/ReactCommon/react/renderer/graphics/platform/cxx"
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactCommon/react/renderer/graphics/platform/cxx"
|
"${NODE_MODULES_DIR}/react-native/ReactCommon/runtimeexecutor"
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactCommon/runtimeexecutor"
|
"${NODE_MODULES_DIR}/react-native/ReactCommon/yoga"
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactCommon/yoga"
|
# --- Reanimated ---
|
||||||
# --- Reanimated ---
|
# New
|
||||||
# New
|
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/AnimatedSensor"
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/AnimatedSensor"
|
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/Tools"
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/Tools"
|
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/SpecTools"
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/SpecTools"
|
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/SharedItems"
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/SharedItems"
|
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/Registries"
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/Registries"
|
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/LayoutAnimations"
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/LayoutAnimations"
|
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/hidden_headers"
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/hidden_headers"
|
"src/main/cpp"
|
||||||
"src/main/cpp"
|
)
|
||||||
)
|
|
||||||
else()
|
|
||||||
file (GLOB LIBFBJNI_INCLUDE_DIR "${BUILD_DIR}/fbjni-*-headers.jar/")
|
|
||||||
|
|
||||||
target_include_directories(
|
|
||||||
${PACKAGE_NAME}
|
|
||||||
PRIVATE
|
|
||||||
# --- fbjni ---
|
|
||||||
"${LIBFBJNI_INCLUDE_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"
|
|
||||||
# --- React Native ---
|
|
||||||
"${NODE_MODULES_DIR}/react-native/React"
|
|
||||||
"${NODE_MODULES_DIR}/react-native/React/Base"
|
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/jni"
|
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni"
|
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactCommon"
|
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactCommon/callinvoker"
|
|
||||||
"${NODE_MODULES_DIR}/react-native/ReactCommon/jsi"
|
|
||||||
"${NODE_MODULES_DIR}/hermes-engine/android/include/"
|
|
||||||
${INCLUDE_JSI_CPP} # only on older RN versions
|
|
||||||
${INCLUDE_JSIDYNAMIC_CPP} # only on older RN versions
|
|
||||||
# --- Reanimated ---
|
|
||||||
# Old
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/headers/AnimatedSensor"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/headers/Tools"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/headers/SpecTools"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/headers/SharedItems"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/headers/Registries"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/headers/LayoutAnimations"
|
|
||||||
# New
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/AnimatedSensor"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/Tools"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/SpecTools"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/SharedItems"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/Registries"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/LayoutAnimations"
|
|
||||||
"${NODE_MODULES_DIR}/react-native-reanimated/Common/cpp/hidden_headers"
|
|
||||||
"src/main/cpp"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# find libraries
|
# find libraries
|
||||||
@ -124,51 +60,17 @@ file (GLOB LIBRN_DIR "${BUILD_DIR}/react-native-0*/jni/${ANDROID_ABI}")
|
|||||||
if(${FOR_HERMES})
|
if(${FOR_HERMES})
|
||||||
string(APPEND CMAKE_CXX_FLAGS " -DFOR_HERMES=1")
|
string(APPEND CMAKE_CXX_FLAGS " -DFOR_HERMES=1")
|
||||||
|
|
||||||
if(${REACT_NATIVE_VERSION} GREATER_EQUAL 71)
|
find_package(hermes-engine REQUIRED CONFIG)
|
||||||
find_package(hermes-engine REQUIRED CONFIG)
|
|
||||||
elseif(${REACT_NATIVE_VERSION} GREATER_EQUAL 69)
|
|
||||||
# Bundled Hermes from module `com.facebook.react:hermes-engine` or project `:ReactAndroid:hermes-engine`
|
|
||||||
target_include_directories(
|
|
||||||
${PACKAGE_NAME}
|
|
||||||
PRIVATE
|
|
||||||
"${JS_RUNTIME_DIR}/API"
|
|
||||||
"${JS_RUNTIME_DIR}/public"
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
# From `hermes-engine` npm package
|
|
||||||
target_include_directories(
|
|
||||||
${PACKAGE_NAME}
|
|
||||||
PRIVATE
|
|
||||||
"${JS_RUNTIME_DIR}/android/include"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(${REACT_NATIVE_VERSION} GREATER_EQUAL 71)
|
target_link_libraries(
|
||||||
target_link_libraries(
|
${PACKAGE_NAME}
|
||||||
${PACKAGE_NAME}
|
"hermes-engine::libhermes"
|
||||||
"hermes-engine::libhermes"
|
)
|
||||||
)
|
|
||||||
else()
|
|
||||||
target_link_libraries(
|
|
||||||
${PACKAGE_NAME}
|
|
||||||
"${BUILD_DIR}/third-party-ndk/hermes/jni/${ANDROID_ABI}/libhermes.so"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
file (GLOB LIBREANIMATED_DIR "${BUILD_DIR}/react-native-reanimated-*-hermes.aar/jni/${ANDROID_ABI}")
|
file (GLOB LIBREANIMATED_DIR "${BUILD_DIR}/react-native-reanimated-*-hermes.aar/jni/${ANDROID_ABI}")
|
||||||
else()
|
else()
|
||||||
file (GLOB LIBJSC_DIR "${BUILD_DIR}/android-jsc*.aar/jni/${ANDROID_ABI}")
|
file (GLOB LIBJSC_DIR "${BUILD_DIR}/android-jsc*.aar/jni/${ANDROID_ABI}")
|
||||||
|
|
||||||
if(${REACT_NATIVE_VERSION} GREATER_EQUAL 71)
|
set(JS_ENGINE_LIB ReactAndroid::jscexecutor)
|
||||||
set(JS_ENGINE_LIB ReactAndroid::jscexecutor)
|
|
||||||
else()
|
|
||||||
# Use JSC
|
|
||||||
find_library(
|
|
||||||
JS_ENGINE_LIB
|
|
||||||
jscexecutor
|
|
||||||
PATHS ${LIBRN_DIR}
|
|
||||||
NO_CMAKE_FIND_ROOT_PATH
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
${PACKAGE_NAME}
|
${PACKAGE_NAME}
|
||||||
${JS_ENGINE_LIB}
|
${JS_ENGINE_LIB}
|
||||||
@ -178,61 +80,14 @@ else()
|
|||||||
file (GLOB LIBREANIMATED_DIR "${BUILD_DIR}/react-native-reanimated-*-jsc.aar/jni/${ANDROID_ABI}")
|
file (GLOB LIBREANIMATED_DIR "${BUILD_DIR}/react-native-reanimated-*-jsc.aar/jni/${ANDROID_ABI}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(${REACT_NATIVE_VERSION} LESS 71)
|
target_link_libraries(
|
||||||
find_library(
|
${PACKAGE_NAME}
|
||||||
FBJNI_LIB
|
ReactAndroid::folly_runtime
|
||||||
fbjni
|
ReactAndroid::glog
|
||||||
PATHS ${LIBRN_DIR}
|
ReactAndroid::jsi
|
||||||
NO_CMAKE_FIND_ROOT_PATH
|
ReactAndroid::reactnativejni
|
||||||
)
|
fbjni::fbjni
|
||||||
endif()
|
)
|
||||||
|
|
||||||
if(${REACT_NATIVE_VERSION} LESS 69)
|
|
||||||
find_library(
|
|
||||||
FOLLY_LIB
|
|
||||||
folly_json
|
|
||||||
PATHS ${LIBRN_DIR}
|
|
||||||
NO_CMAKE_FIND_ROOT_PATH
|
|
||||||
)
|
|
||||||
elseif(${REACT_NATIVE_VERSION} LESS 71)
|
|
||||||
find_library(
|
|
||||||
FOLLY_LIB
|
|
||||||
folly_runtime
|
|
||||||
PATHS ${LIBRN_DIR}
|
|
||||||
NO_CMAKE_FIND_ROOT_PATH
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(${REACT_NATIVE_VERSION} LESS 71)
|
|
||||||
find_library(
|
|
||||||
REACT_NATIVE_JNI_LIB
|
|
||||||
reactnativejni
|
|
||||||
PATHS ${LIBRN_DIR}
|
|
||||||
NO_CMAKE_FIND_ROOT_PATH
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(${REACT_NATIVE_VERSION} GREATER_EQUAL 71)
|
|
||||||
target_link_libraries(
|
|
||||||
${PACKAGE_NAME}
|
|
||||||
ReactAndroid::folly_runtime
|
|
||||||
ReactAndroid::glog
|
|
||||||
ReactAndroid::jsi
|
|
||||||
ReactAndroid::reactnativejni
|
|
||||||
fbjni::fbjni
|
|
||||||
)
|
|
||||||
elseif(${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()
|
|
||||||
|
|
||||||
find_library(
|
find_library(
|
||||||
REANIMATED_LIB
|
REANIMATED_LIB
|
||||||
|
@ -50,16 +50,12 @@ def REACT_NATIVE_VERSION = reactProperties.getProperty("VERSION_NAME").split("\\
|
|||||||
def FOR_HERMES = System.getenv("FOR_HERMES") == "True"
|
def FOR_HERMES = System.getenv("FOR_HERMES") == "True"
|
||||||
rootProject.getSubprojects().forEach({project ->
|
rootProject.getSubprojects().forEach({project ->
|
||||||
if (project.plugins.hasPlugin("com.android.application")) {
|
if (project.plugins.hasPlugin("com.android.application")) {
|
||||||
FOR_HERMES = REACT_NATIVE_VERSION >= 71 && project.hermesEnabled || project.ext.react.enableHermes
|
FOR_HERMES = project.hermesEnabled || project.ext.react.enableHermes
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
def jsRuntimeDir = {
|
def jsRuntimeDir = {
|
||||||
if (FOR_HERMES) {
|
if (FOR_HERMES) {
|
||||||
if (REACT_NATIVE_VERSION >= 69) {
|
return Paths.get(CMAKE_NODE_MODULES_DIR, "react-native", "sdks", "hermes")
|
||||||
return Paths.get(CMAKE_NODE_MODULES_DIR, "react-native", "sdks", "hermes")
|
|
||||||
} else {
|
|
||||||
return Paths.get(CMAKE_NODE_MODULES_DIR, "hermes-engine")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
return Paths.get(CMAKE_NODE_MODULES_DIR, "react-native", "ReactCommon", "jsi")
|
return Paths.get(CMAKE_NODE_MODULES_DIR, "react-native", "ReactCommon", "jsi")
|
||||||
}
|
}
|
||||||
@ -130,10 +126,8 @@ android {
|
|||||||
buildToolsVersion getExtOrDefault('buildToolsVersion')
|
buildToolsVersion getExtOrDefault('buildToolsVersion')
|
||||||
ndkVersion getExtOrDefault('ndkVersion')
|
ndkVersion getExtOrDefault('ndkVersion')
|
||||||
|
|
||||||
if (REACT_NATIVE_VERSION >= 71) {
|
buildFeatures {
|
||||||
buildFeatures {
|
prefab true
|
||||||
prefab true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
@ -277,33 +271,12 @@ repositories {
|
|||||||
def kotlin_version = getExtOrDefault('kotlinVersion')
|
def kotlin_version = getExtOrDefault('kotlinVersion')
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
if (REACT_NATIVE_VERSION >= 71) {
|
implementation "com.facebook.react:react-android:"
|
||||||
implementation "com.facebook.react:react-android:"
|
implementation "com.facebook.react:hermes-android:"
|
||||||
implementation "com.facebook.react:hermes-android:"
|
|
||||||
} else {
|
|
||||||
// noinspection GradleDynamicVersion
|
|
||||||
implementation 'com.facebook.react:react-native:+'
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ENABLE_FRAME_PROCESSORS) {
|
if (ENABLE_FRAME_PROCESSORS) {
|
||||||
implementation project(':react-native-reanimated')
|
implementation project(':react-native-reanimated')
|
||||||
|
|
||||||
if (REACT_NATIVE_VERSION < 71) {
|
|
||||||
//noinspection GradleDynamicVersion
|
|
||||||
extractHeaders("com.facebook.fbjni:fbjni:+:headers")
|
|
||||||
//noinspection GradleDynamicVersion
|
|
||||||
extractJNI("com.facebook.fbjni:fbjni:+")
|
|
||||||
|
|
||||||
def rnAarMatcher = "**/react-native/**/*${resolveBuildType()}.aar"
|
|
||||||
if (REACT_NATIVE_VERSION < 69) {
|
|
||||||
rnAarMatcher = "**/**/*.aar"
|
|
||||||
}
|
|
||||||
|
|
||||||
def rnAAR = fileTree("$reactNative/android").matching({ it.include rnAarMatcher }).singleFile
|
|
||||||
def jscAAR = fileTree("${nodeModules}/jsc-android/dist/org/webkit/android-jsc").matching({ it.include "**/**/*.aar" }).singleFile
|
|
||||||
extractJNI(files(rnAAR, jscAAR))
|
|
||||||
}
|
|
||||||
|
|
||||||
def jsEngine = FOR_HERMES ? "hermes" : "jsc"
|
def jsEngine = FOR_HERMES ? "hermes" : "jsc"
|
||||||
def reaAAR = "${nodeModules}/react-native-reanimated/android/react-native-reanimated-${REACT_NATIVE_VERSION}-${jsEngine}.aar"
|
def reaAAR = "${nodeModules}/react-native-reanimated/android/react-native-reanimated-${REACT_NATIVE_VERSION}-${jsEngine}.aar"
|
||||||
extractJNI(files(reaAAR))
|
extractJNI(files(reaAAR))
|
||||||
@ -353,11 +326,7 @@ if (ENABLE_FRAME_PROCESSORS) {
|
|||||||
|
|
||||||
task downloadBoost(dependsOn: createNativeDepsDirectories, type: Download) {
|
task downloadBoost(dependsOn: createNativeDepsDirectories, type: Download) {
|
||||||
def transformedVersion = BOOST_VERSION.replace("_", ".")
|
def transformedVersion = BOOST_VERSION.replace("_", ".")
|
||||||
def srcUrl = "https://boostorg.jfrog.io/artifactory/main/release/${transformedVersion}/source/boost_${BOOST_VERSION}.tar.gz"
|
src("https://boostorg.jfrog.io/artifactory/main/release/${transformedVersion}/source/boost_${BOOST_VERSION}.tar.gz")
|
||||||
if (REACT_NATIVE_VERSION < 69) {
|
|
||||||
srcUrl = "https://github.com/react-native-community/boost-for-react-native/releases/download/v${transformedVersion}-0/boost_${BOOST_VERSION}.tar.gz"
|
|
||||||
}
|
|
||||||
src(srcUrl)
|
|
||||||
onlyIfNewer(true)
|
onlyIfNewer(true)
|
||||||
overwrite(false)
|
overwrite(false)
|
||||||
dest(boost_file)
|
dest(boost_file)
|
||||||
@ -477,7 +446,7 @@ if (ENABLE_FRAME_PROCESSORS) {
|
|||||||
For more details, see https://reactnative.dev/architecture/bundled-hermes
|
For more details, see https://reactnative.dev/architecture/bundled-hermes
|
||||||
or https://github.com/reactwg/react-native-new-architecture/discussions/4
|
or https://github.com/reactwg/react-native-new-architecture/discussions/4
|
||||||
*/
|
*/
|
||||||
if (REACT_NATIVE_VERSION >= 69 && !isNewArchitectureEnabled()) {
|
if (!isNewArchitectureEnabled()) {
|
||||||
// copied from `react-native/ReactAndroid/hermes-engine/build.gradle`
|
// copied from `react-native/ReactAndroid/hermes-engine/build.gradle`
|
||||||
|
|
||||||
def customDownloadDir = System.getenv("REACT_NATIVE_DOWNLOADS_DIR")
|
def customDownloadDir = System.getenv("REACT_NATIVE_DOWNLOADS_DIR")
|
||||||
@ -515,44 +484,22 @@ if (ENABLE_FRAME_PROCESSORS) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
task prepareHermes() {
|
task prepareHermes() {
|
||||||
if (REACT_NATIVE_VERSION >= 69) {
|
if (!isNewArchitectureEnabled()) {
|
||||||
if (!isNewArchitectureEnabled()) {
|
dependsOn(unzipHermes)
|
||||||
dependsOn(unzipHermes)
|
}
|
||||||
|
|
||||||
|
doLast {
|
||||||
|
def hermesAAR = file("$reactNative/android/com/facebook/react/hermes-engine/$REACT_NATIVE_FULL_VERSION/hermes-engine-$REACT_NATIVE_FULL_VERSION-${resolveBuildType()}.aar") // e.g. hermes-engine-0.70.0-rc.1-debug.aar
|
||||||
|
if (!hermesAAR.exists()) {
|
||||||
|
throw new GradleScriptException("Could not find hermes-engine AAR", null)
|
||||||
}
|
}
|
||||||
|
|
||||||
doLast {
|
def soFiles = zipTree(hermesAAR).matching({ it.include "**/*.so" })
|
||||||
def hermesAAR = file("$reactNative/android/com/facebook/react/hermes-engine/$REACT_NATIVE_FULL_VERSION/hermes-engine-$REACT_NATIVE_FULL_VERSION-${resolveBuildType()}.aar") // e.g. hermes-engine-0.70.0-rc.1-debug.aar
|
|
||||||
if (!hermesAAR.exists()) {
|
|
||||||
throw new GradleScriptException("Could not find hermes-engine AAR", null)
|
|
||||||
}
|
|
||||||
|
|
||||||
def soFiles = zipTree(hermesAAR).matching({ it.include "**/*.so" })
|
copy {
|
||||||
|
from soFiles
|
||||||
copy {
|
from "$reactNative/ReactAndroid/src/main/jni/first-party/hermes/Android.mk"
|
||||||
from soFiles
|
into "$thirdPartyNdkDir/hermes"
|
||||||
from "$reactNative/ReactAndroid/src/main/jni/first-party/hermes/Android.mk"
|
|
||||||
into "$thirdPartyNdkDir/hermes"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
doLast {
|
|
||||||
def hermesPackagePath = findNodeModulePath(projectDir, "hermes-engine")
|
|
||||||
if (!hermesPackagePath) {
|
|
||||||
throw new GradleScriptException("Could not find the hermes-engine npm package", null)
|
|
||||||
}
|
|
||||||
|
|
||||||
def hermesAAR = file("$hermesPackagePath/android/hermes-debug.aar")
|
|
||||||
if (!hermesAAR.exists()) {
|
|
||||||
throw new GradleScriptException("The hermes-engine npm package is missing \"android/hermes-debug.aar\"", null)
|
|
||||||
}
|
|
||||||
|
|
||||||
def soFiles = zipTree(hermesAAR).matching({ it.include "**/*.so" })
|
|
||||||
|
|
||||||
copy {
|
|
||||||
from soFiles
|
|
||||||
from "$reactNative/ReactAndroid/src/main/jni/first-party/hermes/Android.mk"
|
|
||||||
into "$thirdPartyNdkDir/hermes"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -627,12 +574,6 @@ if (ENABLE_FRAME_PROCESSORS) {
|
|||||||
tasks.whenTaskAdded { task ->
|
tasks.whenTaskAdded { task ->
|
||||||
if (!task.name.contains('Clean') && (task.name.contains('externalNative') || task.name.contains('CMake'))) {
|
if (!task.name.contains('Clean') && (task.name.contains('externalNative') || task.name.contains('CMake'))) {
|
||||||
task.dependsOn(extractJNIFiles)
|
task.dependsOn(extractJNIFiles)
|
||||||
if (REACT_NATIVE_VERSION < 71) {
|
|
||||||
task.dependsOn(extractAARHeaders)
|
|
||||||
task.dependsOn(prepareThirdPartyNdkHeaders)
|
|
||||||
task.dependsOn(prepareJSC)
|
|
||||||
task.dependsOn(prepareHermes)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user