diff --git a/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt b/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt index 2a7fab3c09b..a52c797ee61 100644 --- a/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt +++ b/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt @@ -9,6 +9,7 @@ package com.facebook.react import com.android.build.api.variant.Variant import com.facebook.react.tasks.BundleHermesCTask +import com.facebook.react.utils.BackwardCompatUtils.showJSCRemovalMessage import com.facebook.react.utils.KotlinStdlibCompatUtils.capitalizeCompat import com.facebook.react.utils.NdkConfiguratorUtils.configureJsEnginePackagingOptions import com.facebook.react.utils.NdkConfiguratorUtils.configureNewArchPackagingOptions @@ -53,6 +54,9 @@ internal fun Project.configureReactTasks(variant: Variant, config: ReactExtensio configureNewArchPackagingOptions(project, config, variant) configureJsEnginePackagingOptions(config, variant, isHermesEnabledInThisVariant, useThirdPartyJSC) + if (!isHermesEnabledInThisVariant && !useThirdPartyJSC) { + showJSCRemovalMessage(project) + } if (!isDebuggableVariant) { val entryFileEnvVariable = System.getenv("ENTRY_FILE") diff --git a/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/BackwardCompatUtils.kt b/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/BackwardCompatUtils.kt index 5c39266900f..979d553b2d0 100644 --- a/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/BackwardCompatUtils.kt +++ b/packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/BackwardCompatUtils.kt @@ -11,6 +11,7 @@ import java.util.* import org.gradle.api.Project internal object BackwardCompatUtils { + private var hasShownJSCRemovalMessage = false fun configureBackwardCompatibilityReactMap(project: Project) { if (project.extensions.extraProperties.has("react")) { @@ -45,4 +46,25 @@ internal object BackwardCompatUtils { // We set an empty react[] map so if a library is reading it, they will find empty values. project.extensions.extraProperties.set("react", mapOf()) } + + fun showJSCRemovalMessage(project: Project) { + if (hasShownJSCRemovalMessage) { + return + } + + val message = + """ + +=============== JavaScriptCore is being moved =============== +JavaScriptCore has been extracted from react-native core +and will be removed in a future release. It can now be +installed from `@react-native-community/javascriptcore` +See: https://github.com/react-native-community/javascriptcore +============================================================= + +""" + .trimIndent() + project.logger.warn(message) + hasShownJSCRemovalMessage = true + } }