Files
FrenoCorp/node_modules/react-native/settings.gradle.kts
Michael Freno 7c684a42cc FRE-600: Fix code review blockers
- Consolidated duplicate UndoManagers to single instance
- Fixed connection promise to only resolve on 'connected' status
- Fixed WebSocketProvider import (WebsocketProvider)
- Added proper doc.destroy() cleanup
- Renamed isPresenceInitialized property to avoid conflict

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-25 00:08:01 -04:00

84 lines
3.1 KiB
Kotlin

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
// This is the settings.gradle.kts file used when the users
// is doing a build from source. It's triggered as the user
// will add an `includeBuild(../node_modules/react-native)` in
// their settings.gradle.kts file.
// More on this here: https://reactnative.dev/contributing/how-to-build-from-source
pluginManagement {
repositories {
mavenCentral()
google()
gradlePluginPortal()
}
}
rootProject.name = "react-native-build-from-source"
include(":packages:react-native:ReactAndroid")
project(":packages:react-native:ReactAndroid").projectDir = file("ReactAndroid/")
include(":packages:react-native:ReactAndroid:hermes-engine")
project(":packages:react-native:ReactAndroid:hermes-engine").projectDir =
file("ReactAndroid/hermes-engine/")
// Since Gradle 9.0, all the projects in the path must have an existing folder.
// As we build :packages:react-native:ReactAndroid, we need to declare the folders
// for :packages and :packages:react-native as well as otherwise the build from
// source will fail with a missing folder exception.
project(":packages").projectDir = file("/tmp")
project(":packages:react-native").projectDir = file("/tmp")
// Gradle properties defined in `gradle.properties` are not inherited by
// included builds, see https://github.com/gradle/gradle/issues/2534.
// This is a workaround to read the configuration from the consuming project,
// and apply relevant properties to the :react-native project.
buildscript {
val properties = java.util.Properties()
val propertiesToInherit = listOf("hermesV1Enabled", "react.hermesV1Enabled")
// We cannot assume that the node_modules are next to the android project, for example
// in monorepos, they might get hoisted.
// In a composite build, this included build can access the invoking (consumer) build
// via `gradle.parent`. We use its StartParameter to locate the app's `gradle.properties`:
// - `projectDir/gradle.properties` when Gradle is run with `-p <androidDir>`
// - `currentDir/gradle.properties` when run from the app android folder
// If neither exists, we keep the legacy RN fallback path below.
val parentGradle = gradle.parent
val parentProjectDir = parentGradle?.startParameter?.projectDir
val parentCurrentDir = parentGradle?.startParameter?.currentDir
val gradlePropertiesCandidates =
listOfNotNull(
parentProjectDir?.resolve("gradle.properties"),
parentCurrentDir?.resolve("gradle.properties"),
// Backward-compatible fallback for classic RN app layouts.
file("../../android/gradle.properties"),
)
try {
val propertiesFile = gradlePropertiesCandidates.firstOrNull { it.exists() }
propertiesFile?.inputStream()?.use { properties.load(it) }
gradle.rootProject {
propertiesToInherit.forEach { property ->
if (properties.containsKey(property)) {
gradle.rootProject.extra.set(property, properties.getProperty(property))
}
}
}
} catch (e: Exception) {
// fail silently
}
}