From d70555ff0e1967aa09b0f291c8ed1c5918f7a8a0 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Mon, 8 Nov 2021 04:24:54 -0800 Subject: [PATCH] Fix Release build of RNTester Summary: Currently the release build of RNTester is broken as it's loading the debug native libraries. I had to create separate tasks for the two variants as we can't benefit of automatic variant matching between project (as of now till we use prefabs or find another approach). Changelog: [Internal] [Fixed] - Fix Release build of RNTester Reviewed By: ShikaSD Differential Revision: D32203637 fbshipit-source-id: 5c260a365626e9b3c66e76166086711236a38264 --- ReactAndroid/build.gradle | 14 +++++++++++++- packages/rn-tester/android/app/build.gradle | 16 +++++++++++++--- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/ReactAndroid/build.gradle b/ReactAndroid/build.gradle index 4c2f9a5a1af..47ca5dfc72b 100644 --- a/ReactAndroid/build.gradle +++ b/ReactAndroid/build.gradle @@ -232,7 +232,11 @@ def ndkBuildJobs() { return project.findProperty("jobs") ?: Runtime.runtime.availableProcessors() } -tasks.register("packageReactNdkLibsForBuck", Copy) { +tasks.register("packageReactNdkLibsForBuck") { + dependsOn("packageReactNdkDebugLibsForBuck") +} + +tasks.register("packageReactNdkDebugLibsForBuck", Copy) { dependsOn("mergeDebugNativeLibs") from("$buildDir/intermediates/merged_native_libs/debug/out/lib/") exclude("**/libjsc.so") @@ -240,6 +244,14 @@ tasks.register("packageReactNdkLibsForBuck", Copy) { into("src/main/jni/prebuilt/lib") } +tasks.register("packageReactNdkReleaseLibsForBuck", Copy) { + dependsOn("mergeReleaseNativeLibs") + from("$buildDir/intermediates/merged_native_libs/release/out/lib/") + exclude("**/libjsc.so") + exclude("**/libhermes.so") + into("src/main/jni/prebuilt/lib") +} + final def extractNativeDependencies = tasks.register('extractNativeDependencies', ExtractJniAndHeadersTask) { it.extractHeadersConfiguration.setFrom(configurations.extractHeaders) it.extractJniConfiguration.setFrom(configurations.extractJNI) diff --git a/packages/rn-tester/android/app/build.gradle b/packages/rn-tester/android/app/build.gradle index b4b543ae352..7a2303617a8 100644 --- a/packages/rn-tester/android/app/build.gradle +++ b/packages/rn-tester/android/app/build.gradle @@ -286,9 +286,16 @@ if (enableCodegen) { } } - def packageReactNdkLibs = tasks.register("packageReactNdkLibs", Copy) { + def packageReactDebugNdkLibs = tasks.register("packageReactDebugNdkLibs", Copy) { // TODO: handle extracting .so from prebuilt :ReactAndroid. - dependsOn(":ReactAndroid:packageReactNdkLibsForBuck") + dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck") + dependsOn("generateCodegenSchemaFromJavaScript") + from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") + into("$buildDir/react-ndk/exported") + } + def packageReactReleaseNdkLibs = tasks.register("packageReactReleaseNdkLibs", Copy) { + // TODO: handle extracting .so from prebuilt :ReactAndroid. + dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck") dependsOn("generateCodegenSchemaFromJavaScript") from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") into("$buildDir/react-ndk/exported") @@ -308,7 +315,10 @@ if (enableCodegen) { } afterEvaluate { - preBuild.dependsOn(packageReactNdkLibs) + preHermesReleaseBuild.dependsOn(packageReactReleaseNdkLibs) + preJscReleaseBuild.dependsOn(packageReactReleaseNdkLibs) + preHermesDebugBuild.dependsOn(packageReactDebugNdkLibs) + preJscDebugBuild.dependsOn(packageReactDebugNdkLibs) clean.dependsOn(cleanProjectNdkBuild) } }