Skip to content

Commit 6bee68d

Browse files
coadometa-codesync[bot]
authored andcommitted
Add umbrella for react/renderer/uimanager subtree (#58025)
Summary: Pull Request resolved: #58025 Rolls the umbrella-header + include-guard mechanism across the `react/renderer/uimanager` module, classifying the target as public. - Adds `<React/UIManager.h>`, re-exporting the module's public interface headers. - Adds `<react/cxxstableapi/UmbrellaGuard.h>` to the module's public headers. - Wires the umbrella header directory into the Buck, CMake, CocoaPods, Gradle, and iOS prebuild header configurations. - Deprecated `SurfaceRegistryBinding.h` does not include umbrella guard because it will fail anyway when included directly (it includes AppRegistryBinding that does include guard). React Native's own sources keep using the fine-grained `<react/renderer/uimanager/...>` includes; only outside consumers use the umbrella. Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D116763079 fbshipit-source-id: 8994e01d782d0a16677e244f42f573a1583abdda
1 parent dc2d4ec commit 6bee68d

20 files changed

Lines changed: 85 additions & 0 deletions

packages/react-native/ReactAndroid/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ val preparePrefab by
160160
Pair("../ReactCommon/react/renderer/scheduler/", "react/renderer/scheduler/"),
161161
// react_renderer_uimanager
162162
Pair("../ReactCommon/react/renderer/uimanager/", "react/renderer/uimanager/"),
163+
Pair("../ReactCommon/react/renderer/uimanager/React/", "React/"),
163164
// react_utils
164165
Pair("../ReactCommon/react/utils/", "react/utils/"),
165166
// rrc_image

packages/react-native/ReactCommon/React-Fabric.podspec

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,12 @@ Pod::Spec.new do |s|
250250
ss.header_dir = "react/renderer/uimanager"
251251
end
252252

253+
s.subspec "uimanagerUmbrella" do |ss|
254+
ss.source_files = "react/renderer/uimanager/React/*.h"
255+
ss.header_dir = "React"
256+
ss.header_mappings_dir = "react/renderer/uimanager/React"
257+
end
258+
253259
s.subspec "leakchecker" do |ss|
254260
ss.source_files = podspec_sources("react/renderer/leakchecker/**/*.{cpp,h}", "react/renderer/leakchecker/**/*.h")
255261
ss.exclude_files = "react/renderer/leakchecker/tests"

packages/react-native/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <folly/dynamic.h>
1113
#include <jsi/jsi.h>
1214
#include <react/renderer/core/ReactPrimitives.h>

packages/react-native/ReactCommon/react/renderer/uimanager/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ target_link_libraries(react_renderer_uimanager
1818
folly_runtime
1919
jsi
2020
react_cxxreact
21+
react_cxxstableapi
2122
react_debug
2223
react_featureflags
2324
react_renderer_componentregistry

packages/react-native/ReactCommon/react/renderer/uimanager/LayoutAnimationStatusDelegate.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
namespace facebook::react {
1113

1214
class LayoutAnimationStatusDelegate {

packages/react-native/ReactCommon/react/renderer/uimanager/LayoutEventEmitter.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <react/renderer/uimanager/UIManagerCommitHook.h>
1113

1214
namespace facebook::react {

packages/react-native/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <functional>
1113

1214
#include <jsi/jsi.h>

packages/react-native/ReactCommon/react/renderer/uimanager/PointerHoverTracker.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <functional>
1113
#include <initializer_list>
1214
#include <memory>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*/
7+
8+
#pragma once
9+
10+
// =============================================================================
11+
// Umbrella header for the `react/renderer/uimanager` module - public entry
12+
// point.
13+
//
14+
// #include <React/UIManager.h>
15+
//
16+
// Re-exports the module's public interface headers. React Native's own code
17+
// should keep using the fine-grained `<react/renderer/uimanager/...>` includes;
18+
// only outside consumers use this umbrella.
19+
// =============================================================================
20+
21+
// Marks that the following headers are pulled in through the umbrella, so their
22+
// shared guard (<react/cxxstableapi/UmbrellaGuard.h>) accepts them.
23+
#define RN_UMBRELLA_CONTEXT
24+
25+
#include <react/renderer/uimanager/AppRegistryBinding.h>
26+
#include <react/renderer/uimanager/LayoutAnimationStatusDelegate.h>
27+
#include <react/renderer/uimanager/LayoutEventEmitter.h>
28+
#include <react/renderer/uimanager/PointerEventsProcessor.h>
29+
#include <react/renderer/uimanager/PointerHoverTracker.h>
30+
#include <react/renderer/uimanager/UIManager.h>
31+
#include <react/renderer/uimanager/UIManagerAnimationBackend.h>
32+
#include <react/renderer/uimanager/UIManagerAnimationDelegate.h>
33+
#include <react/renderer/uimanager/UIManagerBinding.h>
34+
#include <react/renderer/uimanager/UIManagerCommitHook.h>
35+
#include <react/renderer/uimanager/UIManagerDelegate.h>
36+
#include <react/renderer/uimanager/UIManagerMountHook.h>
37+
#include <react/renderer/uimanager/UIManagerNativeAnimatedDelegate.h>
38+
#include <react/renderer/uimanager/UIManagerViewTransitionDelegate.h>
39+
#include <react/renderer/uimanager/primitives.h>
40+
41+
#undef RN_UMBRELLA_CONTEXT

packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <folly/dynamic.h>
1113
#include <jsi/jsi.h>
1214

0 commit comments

Comments
 (0)