@@ -144,6 +144,7 @@ final def preparePrefab = tasks.register("preparePrefab", PreparePrefabHeadersTa
144144 new Pair (new File (buildDir, " third-party-ndk/boost/boost_1_76_0/" ). absolutePath, " " ),
145145 new Pair (new File (buildDir, " third-party-ndk/double-conversion/" ). absolutePath, " " ),
146146 new Pair (new File (buildDir, " third-party-ndk/folly/" ). absolutePath, " " ),
147+ new Pair (new File (buildDir, " third-party-ndk/glog/exported/" ). absolutePath, " " ),
147148 new Pair (" ../ReactCommon/butter/" , " butter/" ),
148149 new Pair (" ../ReactCommon/callinvoker/" , " " ),
149150 new Pair (" ../ReactCommon/react/bridging/" , " react/bridging/" ),
@@ -152,13 +153,16 @@ final def preparePrefab = tasks.register("preparePrefab", PreparePrefabHeadersTa
152153 new Pair (" ../ReactCommon/react/nativemodule/core/platform/android/" , " " ),
153154 new Pair (" ../ReactCommon/react/renderer/componentregistry/" , " react/renderer/componentregistry/" ),
154155 new Pair (" ../ReactCommon/react/renderer/components/root/" , " react/renderer/components/root/" ),
156+ new Pair (" ../ReactCommon/react/renderer/core/" , " react/renderer/core/" ),
157+ new Pair (" ../ReactCommon/react/renderer/debug/" , " react/renderer/debug/" ),
155158 new Pair (" ../ReactCommon/react/renderer/leakchecker/" , " react/renderer/leakchecker/" ),
156159 new Pair (" ../ReactCommon/react/renderer/mapbuffer/" , " react/renderer/mapbuffer/" ),
157160 new Pair (" ../ReactCommon/react/renderer/mounting/" , " react/renderer/mounting/" ),
158161 new Pair (" ../ReactCommon/react/renderer/runtimescheduler/" , " react/renderer/runtimescheduler/" ),
159162 new Pair (" ../ReactCommon/react/renderer/scheduler/" , " react/renderer/scheduler/" ),
160163 new Pair (" ../ReactCommon/react/renderer/telemetry/" , " react/renderer/telemetry/" ),
161164 new Pair (" ../ReactCommon/react/renderer/uimanager/" , " react/renderer/uimanager/" ),
165+ new Pair (" ../ReactCommon/react/debug/" , " react/debug/" ),
162166 new Pair (" ../ReactCommon/react/utils/" , " react/utils/" ),
163167 new Pair (" src/main/jni/react/jni" , " react/jni/" ),
164168 ]
@@ -174,6 +178,29 @@ final def preparePrefab = tasks.register("preparePrefab", PreparePrefabHeadersTa
174178 " rrc_image" ,
175179 new Pair (" ../ReactCommon/react/renderer/components/image/" , " react/renderer/components/image/" )
176180 ),
181+ // This prefab target is used by Expo & Reanimated to load a new instance of Hermes
182+ new PrefabPreprocessingEntry (
183+ " hermes-executor" ,
184+ // "hermes-executor" is statically linking agaisnt "hermes-executor-common"
185+ // and "hermes-inspector". Here we expose only the headers that we know are needed.
186+ new Pair (" ../ReactCommon/hermes/inspector/" , " hermes/inspector/" )
187+ ),
188+ new PrefabPreprocessingEntry (
189+ " react_render_uimanager" ,
190+ new Pair (" ../ReactCommon/react/renderer/uimanager/" , " react/renderer/uimanager/" ),
191+ ),
192+ new PrefabPreprocessingEntry (
193+ " react_render_scheduler" ,
194+ new Pair (" ../ReactCommon/react/renderer/scheduler/" , " react/renderer/scheduler/" ),
195+ ),
196+ new PrefabPreprocessingEntry (
197+ " react_render_mounting" ,
198+ new Pair (" ../ReactCommon/react/renderer/mounting/" , " react/renderer/mounting/" ),
199+ ),
200+ new PrefabPreprocessingEntry (
201+ " reactnativejni" ,
202+ new Pair (" src/main/jni/react/jni" , " react/jni/" ),
203+ ),
177204 ]
178205 )
179206 it. outputDir. set(prefabHeadersDir)
@@ -402,12 +429,12 @@ android {
402429 " -DANDROID_TOOLCHAIN=clang" ,
403430 " -DANDROID_PLATFORM=android-21"
404431
405- targets " reactnativejni" ,
406- " jscexecutor" ,
432+ targets " jscexecutor" ,
407433 " jsijniprofiler" ,
408434 " reactnativeblob" ,
409435 " reactperfloggerjni" ,
410436 // prefab targets
437+ " reactnativejni" ,
411438 " react_render_debug" ,
412439 " turbomodulejsijni" ,
413440 " runtimeexecutor" ,
@@ -426,32 +453,18 @@ android {
426453 " yoga" ,
427454 " folly_runtime" ,
428455 " react_nativemodule_core" ,
429- " react_render_imagemanager"
456+ " react_render_imagemanager" ,
457+ " react_render_uimanager" ,
458+ " react_render_scheduler" ,
459+ " react_render_mounting" ,
460+ " hermes-executor"
430461 }
431462 }
432463 ndk {
433464 abiFilters(* reactNativeArchitectures())
434465 }
435466 }
436467
437- buildTypes {
438- debug {
439- externalNativeBuild {
440- cmake {
441- targets " hermes-executor-debug"
442- }
443- }
444- }
445-
446- release {
447- externalNativeBuild {
448- cmake {
449- targets " hermes-executor-release"
450- }
451- }
452- }
453- }
454-
455468 externalNativeBuild {
456469 cmake {
457470 path " src/main/jni/CMakeLists.txt"
@@ -549,6 +562,21 @@ android {
549562 react_render_imagemanager {
550563 headers(new File (prefabHeadersDir, " react_render_imagemanager" ). absolutePath)
551564 }
565+ react_render_uimanager {
566+ headers(new File (prefabHeadersDir, " react_render_uimanager" ). absolutePath)
567+ }
568+ react_render_scheduler {
569+ headers(new File (prefabHeadersDir, " react_render_scheduler" ). absolutePath)
570+ }
571+ react_render_mounting {
572+ headers(new File (prefabHeadersDir, " react_render_mounting" ). absolutePath)
573+ }
574+ reactnativejni {
575+ headers(new File (prefabHeadersDir, " reactnativejni" ). absolutePath)
576+ }
577+ " hermes-executor" {
578+ headers(new File (prefabHeadersDir, " hermes-executor" ). absolutePath)
579+ }
552580 }
553581
554582 publishing {
0 commit comments