mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
RNGP - Fix a race condition with codegen libraries missing sources (#52803)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/52803 I've just realized that our build suffer from a race condition. Specifically libraries codegen needs to be executed before the app starts the evaluating CMake files. Otherwise this could lead to a lot of missing files or folders. Changelog: [Android] [Fixed] - **rngp:** Fix a race condition with codegen libraries missing sources Reviewed By: huntie Differential Revision: D78886347 fbshipit-source-id: f59c201d2eab651bc4a08cf5a795acd379d18186
This commit is contained in:
committed by
React Native Bot
parent
5976618bf9
commit
bd94a13c5d
+16
@@ -26,5 +26,21 @@ class ReactRootProjectPlugin : Plugin<Project> {
|
||||
it.evaluationDependsOn(":app")
|
||||
}
|
||||
}
|
||||
// We need to make sure that `:app:preBuild` task depends on all other subprojects' preBuild
|
||||
// tasks. This is necessary in order to have all the codegen generated code before the CMake
|
||||
// configuration build kicks in.
|
||||
project.gradle.projectsEvaluated {
|
||||
val appProject = project.rootProject.subprojects.find { it.name == "app" }
|
||||
val appPreBuild = appProject?.tasks?.findByName("preBuild")
|
||||
if (appPreBuild != null) {
|
||||
// Find all other subprojects' preBuild tasks
|
||||
val otherPreBuildTasks =
|
||||
project.rootProject.subprojects
|
||||
.filter { it != appProject }
|
||||
.mapNotNull { it.tasks.findByName("preBuild") }
|
||||
// Make :app:preBuild depend on all others
|
||||
appPreBuild.dependsOn(otherPreBuildTasks)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user