From d8d308f1c564149920bc2ff4e1ca828e6c612d11 Mon Sep 17 00:00:00 2001 From: Tim Shamilov <3495974+shamilovtim@users.noreply.github.com> Date: Mon, 26 Oct 2026 13:29:32 -0400 Subject: [PATCH] Fix Hermes configuration after source directory changes --- .../ReactAndroid/hermes-engine/build.gradle.kts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/react-native/ReactAndroid/hermes-engine/build.gradle.kts b/packages/react-native/ReactAndroid/hermes-engine/build.gradle.kts index 7db67e79333a..3c5bae1e0776 100644 --- a/packages/react-native/ReactAndroid/hermes-engine/build.gradle.kts +++ b/packages/react-native/ReactAndroid/hermes-engine/build.gradle.kts @@ -183,9 +183,18 @@ fun buildHermesCCommandLineArgs() = listOf( ndkBuildJobs, ) +// CMake caches contain absolute paths. Clear them only when Gradle runs configuration again. +fun CustomExecTask.clearCMakeCacheBeforeConfigure(hermesBuildDir: File) { + doFirst { + File(hermesBuildDir, "CMakeCache.txt").delete() + File(hermesBuildDir, "CMakeFiles").deleteRecursively() + } +} + val configureBuildForHermes by tasks.registering(CustomExecTask::class) { dependsOn(installCMake) + clearCMakeCacheBeforeConfigure(hermesBuildDir) workingDir(hermesDir) inputs.dir(hermesDir) outputs.files(hermesBuildOutputFileTree) @@ -240,6 +249,7 @@ val buildHermesLib by val configureBuildForHermesWithDebugger by tasks.registering(CustomExecTask::class) { dependsOn(installCMake) + clearCMakeCacheBeforeConfigure(hermesBuildDir) workingDir(hermesDir) inputs.dir(hermesDir) outputs.files(hermesBuildOutputFileTree)