From 9c828dd4c2e998dface1ff179c1adcf6f5f802df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 20 Aug 2026 04:52:08 -0700 Subject: [PATCH 1/7] Add umbrella for `react/renderer/components/*` subtree. (#57312) Summary: Pull Request resolved: https://github.com/react/react-native/pull/57312 This change rolls the umbrella-header + include-guard mechanism across the `react/renderer/components/*` modules, classifying each target as public, for-frameworks, or private. The change includes: - react/renderer/components/progressbar:androidprogressbar - `private`, - react/renderer/components/switch:androidswitch - `private`, - react/renderer/components/image:image - `public`, - react/renderer/components/inputaccessory:inputaccessory - `private`, - react/renderer/components/legacyviewmanagerinterop:legacyviewmanagerinterop - `private` - react/renderer/components/modal:modal - `public`, - react/renderer/components/text:text - `public`, - react/renderer/components/root:root - `public`, - react/renderer/components/safeareaview:safeareaview - `private`, - react/renderer/components/scrollview:scrollview - `public`, - react/renderer/components/unimplementedview:unimplementedview - `private`, - react/renderer/components/view:view - `public`, - react/renderer/components/virtualview:virtualview - `private`, - react/renderer/components/textinput:textinput - `for frameworks`, Changelog: [Internal] Differential Revision: D109316840 --- .../ReactAndroid/build.gradle.kts | 4 ++ .../ReactCommon/React-Fabric.podspec | 16 ++++++- .../React-FabricComponents.podspec | 6 +++ .../renderer/components/modal/CMakeLists.txt | 1 + .../modal/ModalHostViewComponentDescriptor.h | 2 + .../modal/ModalHostViewShadowNode.h | 2 + .../components/modal/ModalHostViewState.h | 2 + .../components/modal/ModalHostViewUtils.h | 2 + .../renderer/components/modal/React/Modal.h | 30 +++++++++++++ .../renderer/components/root/CMakeLists.txt | 1 + .../renderer/components/root/React/Root.h | 29 +++++++++++++ .../components/root/RootComponentDescriptor.h | 2 + .../renderer/components/root/RootProps.h | 2 + .../renderer/components/root/RootShadowNode.h | 2 + .../scrollview/BaseScrollViewProps.h | 2 + .../components/scrollview/CMakeLists.txt | 1 + .../components/scrollview/React/ScrollView.h | 42 +++++++++++++++++++ .../components/scrollview/ScrollEvent.h | 2 + .../ScrollViewComponentDescriptor.h | 2 + .../scrollview/ScrollViewEventEmitter.h | 2 + .../components/scrollview/ScrollViewProps.h | 2 + .../scrollview/ScrollViewShadowNode.h | 2 + .../components/scrollview/ScrollViewState.h | 2 + .../components/scrollview/conversions.h | 2 + ...ntalScrollContentViewComponentDescriptor.h | 2 + ...oidHorizontalScrollContentViewShadowNode.h | 2 + .../scrollview/HostPlatformScrollViewProps.h | 2 + .../scrollview/HostPlatformScrollViewProps.h | 2 + .../components/scrollview/primitives.h | 2 + .../scripts/ios-prebuild/headers-config.js | 24 ++++++++++- 30 files changed, 191 insertions(+), 3 deletions(-) create mode 100644 packages/react-native/ReactCommon/react/renderer/components/modal/React/Modal.h create mode 100644 packages/react-native/ReactCommon/react/renderer/components/root/React/Root.h create mode 100644 packages/react-native/ReactCommon/react/renderer/components/scrollview/React/ScrollView.h diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index d142225dcfbb..35d649309b60 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -186,6 +186,10 @@ val preparePrefab by "../ReactCommon/react/renderer/components/root/", "react/renderer/components/root/", ), + Pair( + "../ReactCommon/react/renderer/components/root/React/", + "React/", + ), // runtimeexecutor Pair("../ReactCommon/runtimeexecutor/", ""), // react_renderer_textlayoutmanager diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index df74067efd90..f86733e6c181 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -128,10 +128,16 @@ Pod::Spec.new do |s| s.subspec "components" do |ss| ss.subspec "root" do |sss| sss.source_files = podspec_sources("react/renderer/components/root/**/*.{m,mm,cpp,h}", "react/renderer/components/root/**/*.{h}") - sss.exclude_files = "react/renderer/components/root/tests" + sss.exclude_files = ["react/renderer/components/root/tests", "react/renderer/components/root/React"] sss.header_dir = "react/renderer/components/root" end + ss.subspec "rootUmbrella" do |sss| + sss.source_files = "react/renderer/components/root/React/*.h" + sss.header_dir = "React" + sss.header_mappings_dir = "react/renderer/components/root/React" + end + ss.subspec "view" do |sss| sss.dependency "React-renderercss" sss.dependency "Yoga" @@ -148,7 +154,13 @@ Pod::Spec.new do |s| ss.subspec "scrollview" do |sss| sss.source_files = podspec_sources("react/renderer/components/scrollview/**/*.{m,mm,cpp,h}", "react/renderer/components/scrollview/**/*.{h}") sss.header_dir = "react/renderer/components/scrollview" - sss.exclude_files = "react/renderer/components/scrollview/tests", "react/renderer/components/scrollview/platform/android" + sss.exclude_files = "react/renderer/components/scrollview/tests", "react/renderer/components/scrollview/platform/android", "react/renderer/components/scrollview/React" + end + + ss.subspec "scrollviewUmbrella" do |sss| + sss.source_files = "react/renderer/components/scrollview/React/*.h" + sss.header_dir = "React" + sss.header_mappings_dir = "react/renderer/components/scrollview/React" end ss.subspec "legacyviewmanagerinterop" do |sss| diff --git a/packages/react-native/ReactCommon/React-FabricComponents.podspec b/packages/react-native/ReactCommon/React-FabricComponents.podspec index 69e07a16975b..d2298b2b0889 100644 --- a/packages/react-native/ReactCommon/React-FabricComponents.podspec +++ b/packages/react-native/ReactCommon/React-FabricComponents.podspec @@ -95,6 +95,12 @@ Pod::Spec.new do |s| sss.header_dir = "react/renderer/components/modal" end + ss.subspec "modalUmbrella" do |sss| + sss.source_files = "react/renderer/components/modal/React/*.h" + sss.header_dir = "React" + sss.header_mappings_dir = "react/renderer/components/modal/React" + end + ss.subspec "safeareaview" do |sss| sss.source_files = podspec_sources("react/renderer/components/safeareaview/**/*.{m,mm,cpp,h}", "react/renderer/components/safeareaview/**/*.h") # Exclude tests to avoid conflicts with the react-native-safe-area-context package diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/modal/CMakeLists.txt index c88f562268e4..6bbc40689466 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/CMakeLists.txt @@ -25,6 +25,7 @@ target_link_libraries(rrc_modal folly_runtime glog_init react_codegen_rncore + react_cxxstableapi react_renderer_componentregistry react_renderer_core react_renderer_debug diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h index f48c41fb114d..4de147053a82 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h index 3964dee4b933..f2d447362296 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h index eec349a35fbb..c3e8f4de7cf2 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewState.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include "ModalHostViewUtils.h" diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h index 86b375d850c3..9631bcc42707 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/modal/React/Modal.h b/packages/react-native/ReactCommon/react/renderer/components/modal/React/Modal.h new file mode 100644 index 000000000000..71518feb1c4b --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/components/modal/React/Modal.h @@ -0,0 +1,30 @@ +/* + * 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. + */ + +#pragma once + +// ============================================================================= +// Umbrella header for the `react/renderer/components/modal` module - public +// entry point. +// +// #include +// +// Re-exports the module's public interface headers. React Native's own code +// should keep using the fine-grained `` +// includes; only outside consumers use this umbrella. +// ============================================================================= + +// Marks that the following headers are pulled in through the umbrella, so their +// shared guard () accepts them. +#define RN_UMBRELLA_CONTEXT + +#include +#include +#include +#include + +#undef RN_UMBRELLA_CONTEXT diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/root/CMakeLists.txt index 4d334c662126..6bdd771df690 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/root/CMakeLists.txt @@ -17,6 +17,7 @@ target_link_libraries(rrc_root folly_runtime glog glog_init + react_cxxstableapi react_debug react_renderer_core react_renderer_debug diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/React/Root.h b/packages/react-native/ReactCommon/react/renderer/components/root/React/Root.h new file mode 100644 index 000000000000..96f08af7caf6 --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/components/root/React/Root.h @@ -0,0 +1,29 @@ +/* + * 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. + */ + +#pragma once + +// ============================================================================= +// Umbrella header for the `react/renderer/components/root` module - public +// entry point. +// +// #include +// +// Re-exports the module's public interface headers. React Native's own code +// should keep using the fine-grained `` +// includes; only outside consumers use this umbrella. +// ============================================================================= + +// Marks that the following headers are pulled in through the umbrella, so their +// shared guard () accepts them. +#define RN_UMBRELLA_CONTEXT + +#include +#include +#include + +#undef RN_UMBRELLA_CONTEXT diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h index 8f63c52396bd..aa1213d51676 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/root/RootComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h b/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h index 1003f5202f83..c862b6977ee5 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/root/RootProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h index 2676a1307689..0b1465a3a448 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/root/RootShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h index f6de1cd07fd5..2084d291299b 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt index 6f61e4dc7d57..d317474ca2a2 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt @@ -31,6 +31,7 @@ target_link_libraries(rrc_scrollview folly_runtime glog_init jsi + react_cxxstableapi react_debug react_renderer_core react_renderer_debug diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/React/ScrollView.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/React/ScrollView.h new file mode 100644 index 000000000000..96bf19f107d2 --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/React/ScrollView.h @@ -0,0 +1,42 @@ +/* + * 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. + */ + +#pragma once + +// ============================================================================= +// Umbrella header for the `react/renderer/components/scrollview` module - +// public entry point. +// +// #include +// +// Re-exports the module's public interface headers. React Native's own code +// should keep using the fine-grained +// `` includes; only outside +// consumers use this umbrella. +// ============================================================================= + +// Marks that the following headers are pulled in through the umbrella, so their +// shared guard () accepts them. +#define RN_UMBRELLA_CONTEXT + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef ANDROID +#include +#include +#endif + +#undef RN_UMBRELLA_CONTEXT diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h index c3fd9583828e..e03d7c440b2b 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewComponentDescriptor.h index 84415e8fd377..837b5efe8fe0 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h index a3ae532996f3..4b1147d80105 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h index 4d551b5ea442..1e0775196558 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h index 0362662ccf5b..df15f66378f3 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h index 72d706a1abd1..aac50b28541c 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewState.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/conversions.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/conversions.h index bd1b92fcb1dd..bd239c2b500d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/conversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h index 2705dabee11d..e642a63b0664 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h index 3d69f0f9d21b..b0b80fd8d76d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h index c8f62f28c496..65ce4338fbd2 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/cxx/react/renderer/components/scrollview/HostPlatformScrollViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/cxx/react/renderer/components/scrollview/HostPlatformScrollViewProps.h index 6eaa3d29d9f0..ddfaf1bd00c7 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/cxx/react/renderer/components/scrollview/HostPlatformScrollViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/cxx/react/renderer/components/scrollview/HostPlatformScrollViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/primitives.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/primitives.h index cb75ebb7ac16..e67fab404421 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/primitives.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/scripts/ios-prebuild/headers-config.js b/packages/react-native/scripts/ios-prebuild/headers-config.js index 1201eb984b3d..d794aad3b174 100644 --- a/packages/react-native/scripts/ios-prebuild/headers-config.js +++ b/packages/react-native/scripts/ios-prebuild/headers-config.js @@ -101,9 +101,18 @@ const PodspecExceptions /*: {[key: string]: PodSpecConfiguration} */ = { { name: 'root', headerPatterns: ['react/renderer/components/root/**/*.h'], - excludePatterns: ['react/renderer/components/root/tests'], + excludePatterns: [ + 'react/renderer/components/root/tests', + 'react/renderer/components/root/React', + ], headerDir: 'react/renderer/components/root', }, + + { + name: 'rootUmbrella', + headerPatterns: ['react/renderer/components/root/React/*.h'], + headerDir: 'React', + }, { name: 'view', headerPatterns: [ @@ -126,9 +135,16 @@ const PodspecExceptions /*: {[key: string]: PodSpecConfiguration} */ = { excludePatterns: [ 'react/renderer/components/scrollview/tests', 'react/renderer/components/scrollview/platform/android', + 'react/renderer/components/scrollview/React', ], }, + { + name: 'scrollviewUmbrella', + headerPatterns: ['react/renderer/components/scrollview/React/*.h'], + headerDir: 'React', + }, + { name: 'legacyviewmanagerinterop', headerPatterns: [ @@ -332,6 +348,12 @@ const PodspecExceptions /*: {[key: string]: PodSpecConfiguration} */ = { headerDir: 'react/renderer/components/modal', }, + { + name: 'modalUmbrella', + headerPatterns: ['react/renderer/components/modal/React/*.h'], + headerDir: 'React', + }, + { name: 'safeareaview', headerPatterns: ['react/renderer/components/safeareaview/**/*.h'], From 52edf04a4fe8abfef17b6e0885c15b0bf5893976 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 20 Aug 2026 04:52:08 -0700 Subject: [PATCH 2/7] Add strict API support for `react/renderer/components/*` private targets Differential Revision: D116298251 --- .../inputaccessory/InputAccessoryComponentDescriptor.h | 2 ++ .../components/inputaccessory/InputAccessoryShadowNode.h | 2 ++ .../renderer/components/inputaccessory/InputAccessoryState.h | 2 ++ .../renderer/components/legacyviewmanagerinterop/CMakeLists.txt | 1 + .../LegacyViewManagerInteropShadowNode.h | 2 ++ .../legacyviewmanagerinterop/LegacyViewManagerInteropState.h | 2 ++ .../LegacyViewManagerInteropViewProps.h | 2 ++ .../UnstableLegacyViewManagerAutomaticComponentDescriptor.h | 2 ++ .../UnstableLegacyViewManagerAutomaticShadowNode.h | 2 ++ .../UnstableLegacyViewManagerInteropComponentDescriptor.h | 2 ++ .../LegacyViewManagerInteropComponentDescriptor.h | 2 ++ .../react/renderer/components/progressbar/CMakeLists.txt | 1 + .../progressbar/AndroidProgressBarComponentDescriptor.h | 2 ++ .../progressbar/AndroidProgressBarMeasurementsManager.h | 2 ++ .../components/progressbar/AndroidProgressBarShadowNode.h | 2 ++ .../android/react/renderer/components/progressbar/conversions.h | 2 ++ .../react/renderer/components/safeareaview/CMakeLists.txt | 1 + .../components/safeareaview/SafeAreaViewComponentDescriptor.h | 2 ++ .../renderer/components/safeareaview/SafeAreaViewShadowNode.h | 2 ++ .../react/renderer/components/safeareaview/SafeAreaViewState.h | 2 ++ .../ReactCommon/react/renderer/components/switch/CMakeLists.txt | 1 + .../components/androidswitch/AndroidSwitchComponentDescriptor.h | 2 ++ .../components/androidswitch/AndroidSwitchMeasurementsManager.h | 2 ++ .../renderer/components/androidswitch/AndroidSwitchShadowNode.h | 2 ++ .../react/renderer/components/unimplementedview/CMakeLists.txt | 1 + .../unimplementedview/UnimplementedViewComponentDescriptor.h | 2 ++ .../components/unimplementedview/UnimplementedViewProps.h | 2 ++ .../components/unimplementedview/UnimplementedViewShadowNode.h | 2 ++ .../components/virtualview/VirtualViewComponentDescriptor.h | 2 ++ .../renderer/components/virtualview/VirtualViewShadowNode.h | 2 ++ 30 files changed, 55 insertions(+) diff --git a/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h index 1f524310d8c3..491abe8610e2 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryShadowNode.h index 5de0b82ea0c9..c966318b6c92 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryState.h b/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryState.h index 75e5c9ca0b38..8dba8d6fb3f8 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryState.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt index 7e77dff9411e..af88d75e4c18 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt @@ -18,6 +18,7 @@ target_link_libraries(rrc_legacyviewmanagerinterop glog_init folly_runtime jsi + react_cxxstableapi react_renderer_core rrc_view yoga diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.h index 7fa63d88e88e..996a301bf6f4 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #ifndef RCT_REMOVE_LEGACY_COMPONENT_INTEROP #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.h b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.h index 8b8e4e112db8..a88c07ed20a5 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.h @@ -7,6 +7,8 @@ #pragma once +#include + #ifndef RCT_REMOVE_LEGACY_COMPONENT_INTEROP #import diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h index a6a1c8c191fd..d6e541b5c2c4 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + #ifndef RCT_REMOVE_LEGACY_COMPONENT_INTEROP #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h index 674fe898f770..c3ec629333f5 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #ifndef RCT_REMOVE_LEGACY_COMPONENT_INTEROP #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h index bc6a7767f139..15e0e844d96e 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #ifndef RCT_REMOVE_LEGACY_COMPONENT_INTEROP #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h index e3ba08bbd944..e8343dc4e462 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #ifndef RCT_REMOVE_LEGACY_COMPONENT_INTEROP #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h index ca36068592ea..100b31a1fa82 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #ifndef RCT_REMOVE_LEGACY_COMPONENT_INTEROP #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt index fee751a8edd5..c5ff9425d1a6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt @@ -22,6 +22,7 @@ target_link_libraries(rrc_progressbar folly_runtime glog_init react_codegen_rncore + react_cxxstableapi react_debug react_renderer_componentregistry react_renderer_core diff --git a/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h index 5806aa51093c..00197b5f88d3 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include "AndroidProgressBarMeasurementsManager.h" #include "AndroidProgressBarShadowNode.h" diff --git a/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarMeasurementsManager.h b/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarMeasurementsManager.h index d9aa7a46a685..40d924215623 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarMeasurementsManager.h +++ b/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarMeasurementsManager.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h index 92b4dc61f8b0..1f20d84bbd3d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/conversions.h b/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/conversions.h index 92f0201a2cac..4e1372e271e4 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/conversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/safeareaview/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/safeareaview/CMakeLists.txt index c32e40803c69..733778153df9 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/safeareaview/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/safeareaview/CMakeLists.txt @@ -25,6 +25,7 @@ target_link_libraries( folly_runtime glog_init react_codegen_rncore + react_cxxstableapi react_debug react_renderer_componentregistry react_renderer_core diff --git a/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewComponentDescriptor.h index a03c7c968d2e..42ece0a34f95 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewShadowNode.h index ed073709833f..ef9c2b668ec2 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.h b/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.h index 7ca383fdb510..1d51d12d328a 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #ifdef ANDROID diff --git a/packages/react-native/ReactCommon/react/renderer/components/switch/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/switch/CMakeLists.txt index 957405c434eb..ae3c77e25730 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/switch/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/switch/CMakeLists.txt @@ -24,6 +24,7 @@ target_link_libraries( folly_runtime glog_init react_codegen_rncore + react_cxxstableapi react_debug react_renderer_componentregistry react_renderer_core diff --git a/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h index 1f1e2e177427..e1106503e375 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include "AndroidSwitchMeasurementsManager.h" #include "AndroidSwitchShadowNode.h" diff --git a/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchMeasurementsManager.h b/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchMeasurementsManager.h index 370aad59a462..0122051191f7 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchMeasurementsManager.h +++ b/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchMeasurementsManager.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h index 491426f40207..05044834bcca 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include "AndroidSwitchMeasurementsManager.h" #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt index 3909a34fd70a..ab81eab570e6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/CMakeLists.txt @@ -18,6 +18,7 @@ target_link_libraries(rrc_unimplementedview folly_runtime glog_init jsi + react_cxxstableapi react_debug react_renderer_core react_renderer_debug diff --git a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h index bd96cf9156b4..f6c05df02198 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h index 46490716e4be..a73323fb2050 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewShadowNode.h index ea9f75a8b35f..370cbaeceb25 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h index 9a01e3e664ca..c2fcb49dca56 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/virtualview/VirtualViewComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/virtualview/VirtualViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/virtualview/VirtualViewShadowNode.h index 7b1d1fc6cc0d..1c9f04b4b792 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/virtualview/VirtualViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/virtualview/VirtualViewShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include From e55bed66383e0509f6f2ee0a4288c478dd4425e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 20 Aug 2026 04:52:08 -0700 Subject: [PATCH 3/7] Stop framework headers from exposing private performance APIs Summary: Move private performance includes out of framework-facing scheduler headers and into their implementation files. Store the conditional CDP reporters behind unique pointers so their declarations can remain private implementation details. Changelog: [Internal] Differential Revision: D116621742 --- .../renderer/runtimescheduler/RuntimeScheduler.h | 3 ++- .../runtimescheduler/RuntimeScheduler_Modern.cpp | 1 + .../react/renderer/scheduler/Scheduler.cpp | 10 ++++++++-- .../react/renderer/scheduler/Scheduler.h | 13 +++++++------ .../ReactCommon/react/runtime/ReactInstance.cpp | 1 + 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h index 828efcb7a9c3..46d45399ef20 100644 --- a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +++ b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h @@ -9,7 +9,6 @@ #include #include -#include #include #include #include @@ -20,6 +19,8 @@ namespace facebook::react { +class PerformanceEntryReporter; + using RuntimeSchedulerRenderingUpdate = std::function; using SurfaceId = int32_t; diff --git a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp index dd5af091c16c..f136726cbf80 100644 --- a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +++ b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp index b5fa421a35ae..e0d83d85816f 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp @@ -13,12 +13,16 @@ #include #include #include +#include +#include +#include #include #include #include #include #include #include +#include #include #include #include @@ -44,12 +48,14 @@ Scheduler::Scheduler( if (ReactNativeFeatureFlags::enableBridgelessArchitecture() && ReactNativeFeatureFlags::cdpInteractionMetricsEnabled()) { - cdpMetricsReporter_.emplace(CdpMetricsReporter{runtimeExecutor_}); + cdpMetricsReporter_ = + std::make_unique(runtimeExecutor_); performanceEntryReporter_->addEventListener(&*cdpMetricsReporter_); } if (ReactNativeFeatureFlags::perfIssuesEnabled()) { - cdpPerfIssuesReporter_.emplace(CdpPerfIssuesReporter{runtimeExecutor_}); + cdpPerfIssuesReporter_ = + std::make_unique(runtimeExecutor_); performanceEntryReporter_->addEventListener(&*cdpPerfIssuesReporter_); } diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h index bc0b7b17d802..285e3868f44c 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.h @@ -12,16 +12,12 @@ #include #include -#include -#include -#include #include #include #include #include #include #include -#include #include #include #include @@ -34,6 +30,11 @@ namespace facebook::react { +class CdpMetricsReporter; +class CdpPerfIssuesReporter; +class EventPerformanceLogger; +class PerformanceEntryReporter; + /* * Scheduler coordinates Shadow Tree updates and event flows. */ @@ -145,8 +146,8 @@ class Scheduler final : public UIManagerDelegate { std::shared_ptr> eventDispatcher_; std::shared_ptr performanceEntryReporter_; - std::optional cdpMetricsReporter_; - std::optional cdpPerfIssuesReporter_; + std::unique_ptr cdpMetricsReporter_; + std::unique_ptr cdpPerfIssuesReporter_; std::shared_ptr eventPerformanceLogger_; /** diff --git a/packages/react-native/ReactCommon/react/runtime/ReactInstance.cpp b/packages/react-native/ReactCommon/react/runtime/ReactInstance.cpp index 288bde9d70f6..980cde851d5b 100644 --- a/packages/react-native/ReactCommon/react/runtime/ReactInstance.cpp +++ b/packages/react-native/ReactCommon/react/runtime/ReactInstance.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include From 7b38e3f9847538eb31349f31d13cdfd9c65737b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 20 Aug 2026 04:52:08 -0700 Subject: [PATCH 4/7] Cover 'react/performance' subtree with C++ stable API guards Summary: Adds private guards to `react/performance/timeline:timeline` and `react/performance/cdpmetrics:cdpmetrics` headers preventing from inclusions when `RN_STABLE_API` is turned on. Differential Revision: D109558177 --- .../ReactCommon/react/performance/cdpmetrics/CMakeLists.txt | 1 + .../react/performance/cdpmetrics/CdpInteractionTypes.h | 2 ++ .../react/performance/cdpmetrics/CdpMetricsReporter.h | 2 ++ .../react/performance/cdpmetrics/CdpPerfIssuesReporter.h | 2 ++ .../performance/cdpmetrics/React-performancecdpmetrics.podspec | 2 ++ .../ReactCommon/react/performance/timeline/CMakeLists.txt | 1 + .../ReactCommon/react/performance/timeline/CircularBuffer.h | 2 ++ .../ReactCommon/react/performance/timeline/PerformanceEntry.h | 2 ++ .../react/performance/timeline/PerformanceEntryBuffer.h | 2 ++ .../react/performance/timeline/PerformanceEntryCircularBuffer.h | 2 ++ .../react/performance/timeline/PerformanceEntryKeyedBuffer.h | 2 ++ .../react/performance/timeline/PerformanceEntryReporter.h | 2 ++ .../performance/timeline/PerformanceEntryReporterListeners.h | 2 ++ .../react/performance/timeline/PerformanceObserver.h | 2 ++ .../react/performance/timeline/PerformanceObserverRegistry.h | 2 ++ .../performance/timeline/React-performancetimeline.podspec | 2 ++ 16 files changed, 30 insertions(+) diff --git a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CMakeLists.txt b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CMakeLists.txt index e59c289747b5..2b692cb0fd6f 100644 --- a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CMakeLists.txt @@ -18,6 +18,7 @@ target_include_directories(react_performance_cdpmetrics PUBLIC ${REACT_COMMON_DI target_link_libraries(react_performance_cdpmetrics folly_runtime jsi + react_cxxstableapi react_performance_timeline react_timing runtimeexecutor) diff --git a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpInteractionTypes.h b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpInteractionTypes.h index 9348cc3e98cf..a43d0387f4ba 100644 --- a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpInteractionTypes.h +++ b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpInteractionTypes.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h index 578b7ed32d19..5ec74d04d94e 100644 --- a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h +++ b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h index 617646eb061f..979c20554d6d 100644 --- a/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +++ b/packages/react-native/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec b/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec index 646855e74b80..16473685e023 100644 --- a/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec +++ b/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec @@ -40,6 +40,8 @@ Pod::Spec.new do |s| resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_performancecdpmetrics") + s.dependency "React-cxxstableapi" + add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) s.dependency "React-jsi" s.dependency "React-performancetimeline" diff --git a/packages/react-native/ReactCommon/react/performance/timeline/CMakeLists.txt b/packages/react-native/ReactCommon/react/performance/timeline/CMakeLists.txt index 38475e307660..4217acdb9029 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/performance/timeline/CMakeLists.txt @@ -19,6 +19,7 @@ target_link_libraries(react_performance_timeline jsinspector jsinspector_tracing reactperflogger + react_cxxstableapi react_featureflags react_timing folly_runtime) diff --git a/packages/react-native/ReactCommon/react/performance/timeline/CircularBuffer.h b/packages/react-native/ReactCommon/react/performance/timeline/CircularBuffer.h index a9c44281c328..a62db037f942 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/CircularBuffer.h +++ b/packages/react-native/ReactCommon/react/performance/timeline/CircularBuffer.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntry.h b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntry.h index 291bb2ace829..838f30283d28 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntry.h +++ b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntry.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryBuffer.h b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryBuffer.h index 418b344fbbba..3ac876d885c4 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryBuffer.h +++ b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryBuffer.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include "PerformanceEntry.h" diff --git a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.h b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.h index 95163b5392ad..6d263cffea7d 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.h +++ b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryCircularBuffer.h @@ -7,6 +7,8 @@ #pragma once +#include + #include "CircularBuffer.h" #include "PerformanceEntryBuffer.h" diff --git a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.h b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.h index 5d895d5873e9..20b84eb32a9d 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.h +++ b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryKeyedBuffer.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h index f9c584ab27cf..90d61644e802 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +++ b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include "PerformanceEntryCircularBuffer.h" #include "PerformanceEntryKeyedBuffer.h" #include "PerformanceEntryReporterListeners.h" diff --git a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporterListeners.h b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporterListeners.h index e604963e887b..5767d0046205 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporterListeners.h +++ b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporterListeners.h @@ -7,6 +7,8 @@ #pragma once +#include + #include "PerformanceEntry.h" #include diff --git a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceObserver.h b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceObserver.h index a8335aea3a96..235ed6d914d7 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceObserver.h +++ b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceObserver.h @@ -7,6 +7,8 @@ #pragma once +#include + #include "PerformanceEntryBuffer.h" #include "PerformanceObserverRegistry.h" diff --git a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceObserverRegistry.h b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceObserverRegistry.h index dc3c7d4a4e6c..54f40c2064a4 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/PerformanceObserverRegistry.h +++ b/packages/react-native/ReactCommon/react/performance/timeline/PerformanceObserverRegistry.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec b/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec index ec18c311fe18..863541a835b7 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +++ b/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec @@ -40,6 +40,8 @@ Pod::Spec.new do |s| resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_performancetimeline") + s.dependency "React-cxxstableapi" + s.dependency "React-featureflags" add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern') add_dependency(s, "React-jsinspectortracing", :framework_name => 'jsinspector_moderntracing') From 72f6f66dff422f0a998a6a68ccf540ec19d70c2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 20 Aug 2026 04:52:08 -0700 Subject: [PATCH 5/7] Add stable public MapBuffer C++ entry point Summary: Add `` as the canonical public C++ entry point for MapBuffer and MapBufferBuilder. Guard direct leaf-header inclusion for strict API consumers while preserving existing React Native builds and legacy include paths. Export and stage the umbrella consistently through Buck, CMake, Android Prefab, CocoaPods, and the Apple prebuilt-header inventory. Changelog: [General][Added] - Add `` as the stable public C++ entry point for MapBuffer Differential Revision: D116632721 --- .../ReactAndroid/build.gradle.kts | 1 + .../ReactCommon/React-Mapbuffer.podspec | 9 ++++++- .../react/renderer/mapbuffer/CMakeLists.txt | 2 +- .../react/renderer/mapbuffer/MapBuffer.h | 1 + .../renderer/mapbuffer/MapBufferBuilder.h | 1 + .../renderer/mapbuffer/React/MapBuffer.h | 27 +++++++++++++++++++ .../scripts/ios-prebuild/headers-config.js | 16 +++++++++++ 7 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 packages/react-native/ReactCommon/react/renderer/mapbuffer/React/MapBuffer.h diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index 35d649309b60..3ed3fbe9d3c1 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -252,6 +252,7 @@ val preparePrefab by "react/renderer/leakchecker/", ), Pair("../ReactCommon/react/renderer/mapbuffer/", "react/renderer/mapbuffer/"), + Pair("../ReactCommon/react/renderer/mapbuffer/React/", "React/"), Pair("../ReactCommon/react/renderer/mounting/", "react/renderer/mounting/"), Pair( "../ReactCommon/react/renderer/runtimescheduler/", diff --git a/packages/react-native/ReactCommon/React-Mapbuffer.podspec b/packages/react-native/ReactCommon/React-Mapbuffer.podspec index 74cef67a4e40..133f9e5010f0 100644 --- a/packages/react-native/ReactCommon/React-Mapbuffer.podspec +++ b/packages/react-native/ReactCommon/React-Mapbuffer.podspec @@ -26,14 +26,21 @@ Pod::Spec.new do |s| s.platforms = min_supported_versions s.source = source s.source_files = podspec_sources("react/renderer/mapbuffer/*.{cpp,h}", "react/renderer/mapbuffer/*.h") - s.exclude_files = "react/renderer/mapbuffer/tests" + s.exclude_files = ["react/renderer/mapbuffer/tests", "react/renderer/mapbuffer/React"] s.public_header_files = 'react/renderer/mapbuffer/*.h' s.header_dir = "react/renderer/mapbuffer" s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => ["\"$(PODS_TARGET_SRCROOT)\""], "USE_HEADERMAP" => "YES", "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() } + s.subspec "MapBufferUmbrella" do |ss| + ss.source_files = "react/renderer/mapbuffer/React/*.h" + ss.header_dir = "React" + ss.header_mappings_dir = "react/renderer/mapbuffer/React" + end + resolve_use_frameworks(s, header_mappings_dir: './', module_name: "React_Mapbuffer") + s.dependency "React-cxxstableapi" add_dependency(s, "React-debug") add_rn_third_party_dependencies(s) add_rncore_dependency(s) diff --git a/packages/react-native/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt index 0930ec9ee1b2..0d0ef6c27be2 100644 --- a/packages/react-native/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt @@ -11,6 +11,6 @@ file(GLOB react_renderer_mapbuffer_SRC CONFIGURE_DEPENDS *.cpp) add_library(react_renderer_mapbuffer OBJECT ${react_renderer_mapbuffer_SRC}) target_include_directories(react_renderer_mapbuffer PUBLIC ${REACT_COMMON_DIR}) -target_link_libraries(react_renderer_mapbuffer glog glog_init react_debug) +target_link_libraries(react_renderer_mapbuffer glog glog_init react_cxxstableapi react_debug) target_compile_reactnative_options(react_renderer_mapbuffer PRIVATE) target_compile_options(react_renderer_mapbuffer PRIVATE -Wpedantic) diff --git a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.h b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.h index 07b64bdfba99..d57b5ef2e9a7 100644 --- a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +++ b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBuffer.h @@ -7,6 +7,7 @@ #pragma once +#include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h index 2963c77a9b36..66a36a94b2f7 100644 --- a/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +++ b/packages/react-native/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h @@ -7,6 +7,7 @@ #pragma once +#include #include #include #include "MapBuffer.h" diff --git a/packages/react-native/ReactCommon/react/renderer/mapbuffer/React/MapBuffer.h b/packages/react-native/ReactCommon/react/renderer/mapbuffer/React/MapBuffer.h new file mode 100644 index 000000000000..898a7befe37e --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/mapbuffer/React/MapBuffer.h @@ -0,0 +1,27 @@ +/* + * 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. + */ + +#pragma once + +// ============================================================================= +// Umbrella header for the `react/renderer/mapbuffer` module - public entry point. +// +// #include +// +// Re-exports the module's public interface headers. React Native's own code +// should keep using the fine-grained `` includes; +// only outside consumers use this umbrella. +// ============================================================================= + +// Marks that the following headers are pulled in through the umbrella, so their +// shared guard () accepts them. +#define RN_UMBRELLA_CONTEXT + +#include +#include + +#undef RN_UMBRELLA_CONTEXT diff --git a/packages/react-native/scripts/ios-prebuild/headers-config.js b/packages/react-native/scripts/ios-prebuild/headers-config.js index d794aad3b174..ccf4d23a6ac4 100644 --- a/packages/react-native/scripts/ios-prebuild/headers-config.js +++ b/packages/react-native/scripts/ios-prebuild/headers-config.js @@ -466,6 +466,22 @@ const PodspecExceptions /*: {[key: string]: PodSpecConfiguration} */ = { }, ], }, + 'ReactCommon/React-Mapbuffer.podspec': { + name: 'React-Mapbuffer', + headerPatterns: ['react/renderer/mapbuffer/**/*.h'], + excludePatterns: [ + 'react/renderer/mapbuffer/tests', + 'react/renderer/mapbuffer/React', + ], + headerDir: 'react/renderer/mapbuffer', + subSpecs: [ + { + name: 'MapBufferUmbrella', + headerPatterns: ['react/renderer/mapbuffer/React/*.h'], + headerDir: 'React', + }, + ], + }, 'ReactCommon/React-FabricImage.podspec': { name: 'React-FabricImage', headerPatterns: ['react/renderer/components/image/**/*.h'], From c72adec6756483521595dd32416a0d2cf299b780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 20 Aug 2026 04:59:08 -0700 Subject: [PATCH 6/7] Add umbrella for `react/renderer/uimanager` subtree Summary: Rolls the umbrella-header + include-guard mechanism across the `react/renderer/uimanager` module, classifying the target as public. - Adds ``, re-exporting the module's public interface headers. - Adds `` to the module's public headers. - Wires the umbrella header directory into the Buck, CMake, CocoaPods, Gradle, and iOS prebuild header configurations. React Native's own sources keep using the fine-grained `` includes; only outside consumers use the umbrella. Changelog: [Internal] Differential Revision: D116763079 --- .../ReactAndroid/build.gradle.kts | 1 + .../ReactCommon/React-Fabric.podspec | 6 +++ .../renderer/uimanager/AppRegistryBinding.h | 2 + .../react/renderer/uimanager/CMakeLists.txt | 1 + .../uimanager/LayoutAnimationStatusDelegate.h | 2 + .../renderer/uimanager/LayoutEventEmitter.h | 2 + .../uimanager/PointerEventsProcessor.h | 2 + .../renderer/uimanager/PointerHoverTracker.h | 2 + .../renderer/uimanager/React/UIManager.h | 41 +++++++++++++++++++ .../react/renderer/uimanager/UIManager.h | 2 + .../uimanager/UIManagerAnimationBackend.h | 2 + .../uimanager/UIManagerAnimationDelegate.h | 2 + .../renderer/uimanager/UIManagerBinding.h | 2 + .../renderer/uimanager/UIManagerCommitHook.h | 2 + .../renderer/uimanager/UIManagerDelegate.h | 2 + .../renderer/uimanager/UIManagerMountHook.h | 2 + .../UIManagerNativeAnimatedDelegate.h | 2 + .../UIManagerViewTransitionDelegate.h | 2 + .../react/renderer/uimanager/primitives.h | 2 + .../scripts/ios-prebuild/headers-config.js | 6 +++ 20 files changed, 85 insertions(+) create mode 100644 packages/react-native/ReactCommon/react/renderer/uimanager/React/UIManager.h diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index 3ed3fbe9d3c1..245f986adf20 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -160,6 +160,7 @@ val preparePrefab by Pair("../ReactCommon/react/renderer/scheduler/", "react/renderer/scheduler/"), // react_renderer_uimanager Pair("../ReactCommon/react/renderer/uimanager/", "react/renderer/uimanager/"), + Pair("../ReactCommon/react/renderer/uimanager/React/", "React/"), // react_utils Pair("../ReactCommon/react/utils/", "react/utils/"), // rrc_image diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index f86733e6c181..275c83ab9a41 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -250,6 +250,12 @@ Pod::Spec.new do |s| ss.header_dir = "react/renderer/uimanager" end + s.subspec "uimanagerUmbrella" do |ss| + ss.source_files = "react/renderer/uimanager/React/*.h" + ss.header_dir = "React" + ss.header_mappings_dir = "react/renderer/uimanager/React" + end + s.subspec "leakchecker" do |ss| ss.source_files = podspec_sources("react/renderer/leakchecker/**/*.{cpp,h}", "react/renderer/leakchecker/**/*.h") ss.exclude_files = "react/renderer/leakchecker/tests" diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h b/packages/react-native/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h index f71565b9149b..68e59c572105 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/uimanager/CMakeLists.txt index 388602c0d6e3..f8e0b076c868 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/CMakeLists.txt @@ -18,6 +18,7 @@ target_link_libraries(react_renderer_uimanager folly_runtime jsi react_cxxreact + react_cxxstableapi react_debug react_featureflags react_renderer_componentregistry diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/LayoutAnimationStatusDelegate.h b/packages/react-native/ReactCommon/react/renderer/uimanager/LayoutAnimationStatusDelegate.h index 821cb2531a57..880fff380eb9 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/LayoutAnimationStatusDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/LayoutAnimationStatusDelegate.h @@ -7,6 +7,8 @@ #pragma once +#include + namespace facebook::react { class LayoutAnimationStatusDelegate { diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/LayoutEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/uimanager/LayoutEventEmitter.h index 4506cfabc8de..dc4d1d4e6731 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/LayoutEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/LayoutEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h b/packages/react-native/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h index e39dcf5f21db..8f65f8458b1a 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/PointerHoverTracker.h b/packages/react-native/ReactCommon/react/renderer/uimanager/PointerHoverTracker.h index 712a3cdfffc2..cc590924dfe9 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/PointerHoverTracker.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/PointerHoverTracker.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/React/UIManager.h b/packages/react-native/ReactCommon/react/renderer/uimanager/React/UIManager.h new file mode 100644 index 000000000000..0eb6cedb315b --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/React/UIManager.h @@ -0,0 +1,41 @@ +/* + * 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. + */ + +#pragma once + +// ============================================================================= +// Umbrella header for the `react/renderer/uimanager` module - public entry +// point. +// +// #include +// +// Re-exports the module's public interface headers. React Native's own code +// should keep using the fine-grained `` includes; +// only outside consumers use this umbrella. +// ============================================================================= + +// Marks that the following headers are pulled in through the umbrella, so their +// shared guard () accepts them. +#define RN_UMBRELLA_CONTEXT + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#undef RN_UMBRELLA_CONTEXT diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h index f7452c8defe6..223dcae26a83 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h index 27c39b18e5e0..a6ffded2ac8e 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h index ac310eb4ad96..36cb9140a929 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.h index 0d1910b442b6..8133ac07a443 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerCommitHook.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerCommitHook.h index 30f5d0e6d61e..2bb6940bf5d6 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerCommitHook.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerCommitHook.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h index ef4dd73de763..e5c761302439 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerMountHook.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerMountHook.h index 763efb8b3535..ab2071590d95 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerMountHook.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerMountHook.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include "UIManager.h" diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerNativeAnimatedDelegate.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerNativeAnimatedDelegate.h index a163a3741a59..0e524ba0a864 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerNativeAnimatedDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerNativeAnimatedDelegate.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h index 3fa4c0e1261b..94229732f313 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerViewTransitionDelegate.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/primitives.h b/packages/react-native/ReactCommon/react/renderer/uimanager/primitives.h index ae798d078ebf..39e57403116f 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/primitives.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/scripts/ios-prebuild/headers-config.js b/packages/react-native/scripts/ios-prebuild/headers-config.js index ccf4d23a6ac4..2045b50ceae2 100644 --- a/packages/react-native/scripts/ios-prebuild/headers-config.js +++ b/packages/react-native/scripts/ios-prebuild/headers-config.js @@ -231,6 +231,12 @@ const PodspecExceptions /*: {[key: string]: PodSpecConfiguration} */ = { headerDir: 'react/renderer/uimanager', }, + { + name: 'uimanagerUmbrella', + headerPatterns: ['react/renderer/uimanager/React/*.h'], + headerDir: 'React', + }, + { name: 'leakchecker', headerPatterns: ['react/renderer/leakchecker/**/*.h'], From 08d57848958ce06ef4bac80837891139a5cc5f9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Thu, 20 Aug 2026 06:57:59 -0700 Subject: [PATCH 7/7] Add umbrella for `react/renderer/graphics` subtree Summary: Rolls the umbrella-header + include-guard mechanism across the `react/renderer/graphics` module, classifying the target as public. - Adds ``, re-exporting the module's public interface headers. - Adds `` to 24 root headers and all 18 platform headers. - Wires the umbrella header directory into the Buck, CMake, CocoaPods, Gradle, and iOS prebuild header configurations. `conversions.h` and `Geometry.h` are deliberately left unguarded. Both are deprecation shims whose only content is a `#warning` redirecting to their replacements. `PlatformColorParser.h` and `fromRawValueShared.h` include `react/renderer/core/RawValue.h`, which was only reachable on Apple platforms because `react/renderer/core:rawValue` was restricted to `platforms = APPLE`. No source inside the graphics target included those headers off-Apple, so the breakage was latent and invisible; reaching them through the umbrella surfaces it. Changelog: [Internal] Differential Revision: D116779866 --- .../ReactAndroid/build.gradle.kts | 1 + .../react/renderer/graphics/BackgroundImage.h | 2 + .../renderer/graphics/BackgroundPosition.h | 2 + .../renderer/graphics/BackgroundRepeat.h | 2 + .../react/renderer/graphics/BackgroundSize.h | 2 + .../react/renderer/graphics/BlendMode.h | 2 + .../react/renderer/graphics/BoxShadow.h | 2 + .../react/renderer/graphics/CMakeLists.txt | 1 + .../react/renderer/graphics/Color.h | 2 + .../react/renderer/graphics/ColorComponents.h | 2 + .../react/renderer/graphics/ColorStop.h | 2 + .../react/renderer/graphics/Filter.h | 2 + .../react/renderer/graphics/Isolation.h | 2 + .../react/renderer/graphics/LinearGradient.h | 2 + .../react/renderer/graphics/Point.h | 2 + .../react/renderer/graphics/RadialGradient.h | 2 + .../renderer/graphics/React-graphics.podspec | 8 +++ .../react/renderer/graphics/React/Graphics.h | 57 +++++++++++++++++++ .../react/renderer/graphics/Rect.h | 2 + .../renderer/graphics/RectangleCorners.h | 2 + .../react/renderer/graphics/RectangleEdges.h | 2 + .../react/renderer/graphics/Size.h | 2 + .../react/renderer/graphics/Transform.h | 2 + .../react/renderer/graphics/TransformUtils.h | 2 + .../react/renderer/graphics/ValueUnit.h | 2 + .../react/renderer/graphics/Vector.h | 2 + .../renderer/graphics/fromRawValueShared.h | 2 + .../android/react/renderer/graphics/Float.h | 2 + .../renderer/graphics/HostPlatformColor.h | 2 + .../renderer/graphics/PlatformColorParser.h | 2 + ...figurePlatformColorCacheInvalidationHook.h | 2 + .../cxx/react/renderer/graphics/Float.h | 2 + .../renderer/graphics/HostPlatformColor.h | 2 + .../renderer/graphics/PlatformColorParser.h | 2 + .../ios/react/renderer/graphics/Float.h | 2 + .../renderer/graphics/HostPlatformColor.h | 2 + .../renderer/graphics/PlatformColorParser.h | 2 + .../renderer/graphics/RCTPlatformColorUtils.h | 2 + .../react/renderer/graphics/rounding.h | 2 + .../graphics/tests/UmbrellaCompileTest.cpp | 8 +++ .../scripts/ios-prebuild/headers-config.js | 16 ++++++ 41 files changed, 161 insertions(+) create mode 100644 packages/react-native/ReactCommon/react/renderer/graphics/React/Graphics.h create mode 100644 packages/react-native/ReactCommon/react/renderer/graphics/tests/UmbrellaCompileTest.cpp diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index 245f986adf20..e3ab24175429 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -147,6 +147,7 @@ val preparePrefab by Pair("../ReactCommon/react/renderer/debug/", "react/renderer/debug/"), // react_renderer_graphics Pair("../ReactCommon/react/renderer/graphics/", "react/renderer/graphics/"), + Pair("../ReactCommon/react/renderer/graphics/React/", "React/"), Pair("../ReactCommon/react/renderer/graphics/platform/android/", ""), // react_renderer_imagemanager Pair( diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundImage.h b/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundImage.h index d156126f251c..ab0c62e506ca 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundImage.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundImage.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundPosition.h b/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundPosition.h index 37a2693896bc..12d539bf80c6 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundPosition.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundPosition.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundRepeat.h b/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundRepeat.h index 15edff00a407..e018fd395a53 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundRepeat.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundRepeat.h @@ -7,6 +7,8 @@ #pragma once +#include + namespace facebook::react { enum class BackgroundRepeatStyle { diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundSize.h b/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundSize.h index 5b0f52cee7e1..90fd8a335490 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundSize.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/BackgroundSize.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/BlendMode.h b/packages/react-native/ReactCommon/react/renderer/graphics/BlendMode.h index 25a1c91232b6..eefa2bacd969 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/BlendMode.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/BlendMode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/BoxShadow.h b/packages/react-native/ReactCommon/react/renderer/graphics/BoxShadow.h index f8be37cc06e1..b8664bc44a37 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/BoxShadow.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/BoxShadow.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/graphics/CMakeLists.txt index 7113ce1bcdc6..640f45ccb20a 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/graphics/CMakeLists.txt @@ -29,6 +29,7 @@ target_link_libraries(react_renderer_graphics glog ${fbjni} folly_runtime + react_cxxstableapi react_debug react_renderer_debug react_utils diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Color.h b/packages/react-native/ReactCommon/react/renderer/graphics/Color.h index 16905f62a3d2..3e5dd1f5593b 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Color.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Color.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/ColorComponents.h b/packages/react-native/ReactCommon/react/renderer/graphics/ColorComponents.h index ce60f7a4074f..37854e31fff6 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/ColorComponents.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/ColorComponents.h @@ -7,6 +7,8 @@ #pragma once +#include + namespace facebook::react { enum class ColorSpace { sRGB, DisplayP3 }; diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/ColorStop.h b/packages/react-native/ReactCommon/react/renderer/graphics/ColorStop.h index b3136d4238b0..1febc2e3495b 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/ColorStop.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/ColorStop.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Filter.h b/packages/react-native/ReactCommon/react/renderer/graphics/Filter.h index f4c1c2613080..fc18207f93a2 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Filter.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Filter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Isolation.h b/packages/react-native/ReactCommon/react/renderer/graphics/Isolation.h index 9b9b2a1e630e..296ab737e021 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Isolation.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Isolation.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/LinearGradient.h b/packages/react-native/ReactCommon/react/renderer/graphics/LinearGradient.h index 57168c953b19..098f9b466755 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/LinearGradient.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/LinearGradient.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Point.h b/packages/react-native/ReactCommon/react/renderer/graphics/Point.h index c9bf3297d0b3..da9a67b62e8c 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Point.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Point.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/RadialGradient.h b/packages/react-native/ReactCommon/react/renderer/graphics/RadialGradient.h index 012487e7f828..7aa75ef7e29a 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/RadialGradient.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/RadialGradient.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec b/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec index a164d8ef3db1..5445ed1f97ab 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec +++ b/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec @@ -31,6 +31,7 @@ Pod::Spec.new do |s| s.platforms = min_supported_versions s.source = source s.source_files = podspec_sources(source_files, ["*.h", "platform/ios/**/*.h"]) + s.exclude_files = "React" s.header_dir = "react/renderer/graphics" s.framework = "UIKit" @@ -38,6 +39,12 @@ Pod::Spec.new do |s| header_search_paths = header_search_paths + ["\"$(PODS_TARGET_SRCROOT)/platform/ios\""] end + s.subspec "GraphicsUmbrella" do |ss| + ss.source_files = "React/*.h" + ss.header_dir = "React" + ss.header_mappings_dir = "React" + end + resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_graphics") s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", @@ -50,6 +57,7 @@ Pod::Spec.new do |s| s.dependency "React-featureflags" s.dependency "React-utils" s.dependency "React-rendererdebug" + s.dependency "React-cxxstableapi" depend_on_js_engine(s) add_rn_third_party_dependencies(s) diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/React/Graphics.h b/packages/react-native/ReactCommon/react/renderer/graphics/React/Graphics.h new file mode 100644 index 000000000000..1867cbd81134 --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/graphics/React/Graphics.h @@ -0,0 +1,57 @@ +/* + * 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. + */ + +#pragma once + +// ============================================================================= +// Umbrella header for the `react/renderer/graphics` module - public entry +// point. +// +// #include +// +// Re-exports the module's public interface headers. React Native's own code +// should keep using the fine-grained `` includes; +// only outside consumers use this umbrella. +// ============================================================================= + +// Marks that the following headers are pulled in through the umbrella, so their +// shared guard () accepts them. +#define RN_UMBRELLA_CONTEXT + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef ANDROID +#include +#endif + +#undef RN_UMBRELLA_CONTEXT diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Rect.h b/packages/react-native/ReactCommon/react/renderer/graphics/Rect.h index a9a4dcb9057c..9d38462812c5 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Rect.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Rect.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/RectangleCorners.h b/packages/react-native/ReactCommon/react/renderer/graphics/RectangleCorners.h index 00b3f9a109ef..d2804b6dc25a 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/RectangleCorners.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/RectangleCorners.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/RectangleEdges.h b/packages/react-native/ReactCommon/react/renderer/graphics/RectangleEdges.h index cccfcbd909a8..7d55d84d2d24 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/RectangleEdges.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/RectangleEdges.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Size.h b/packages/react-native/ReactCommon/react/renderer/graphics/Size.h index bde0a19f0d27..2e2b80106553 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Size.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Size.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Transform.h b/packages/react-native/ReactCommon/react/renderer/graphics/Transform.h index 2f3a69021426..708593867b88 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Transform.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Transform.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/TransformUtils.h b/packages/react-native/ReactCommon/react/renderer/graphics/TransformUtils.h index c12d264a0d36..887447278f3e 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/TransformUtils.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/TransformUtils.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/ValueUnit.h b/packages/react-native/ReactCommon/react/renderer/graphics/ValueUnit.h index ff654387062f..3ed9bc5b7a95 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/ValueUnit.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/ValueUnit.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Vector.h b/packages/react-native/ReactCommon/react/renderer/graphics/Vector.h index 595856d59e8a..b76354d56355 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Vector.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Vector.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/fromRawValueShared.h b/packages/react-native/ReactCommon/react/renderer/graphics/fromRawValueShared.h index 7bd48ce15b46..5c0ff7ee8bf0 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/fromRawValueShared.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/fromRawValueShared.h @@ -15,6 +15,8 @@ #pragma once +#include + namespace facebook::react { using parsePlatformColorFn = SharedColor (*)(const ContextContainer &, int32_t, const RawValue &); diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/Float.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/Float.h index ee0ee3e6a376..673b16a8d878 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/Float.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/Float.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h index bfbefc3832a3..94110d0704eb 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h index cf5a7c2ce1f1..4443871cac89 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h @@ -7,6 +7,8 @@ #pragma once +#include + #include "configurePlatformColorCacheInvalidationHook.h" #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/configurePlatformColorCacheInvalidationHook.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/configurePlatformColorCacheInvalidationHook.h index 0ae822a1f396..ac6c743ccb0f 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/configurePlatformColorCacheInvalidationHook.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/configurePlatformColorCacheInvalidationHook.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Float.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Float.h index ee0ee3e6a376..673b16a8d878 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Float.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/Float.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/HostPlatformColor.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/HostPlatformColor.h index a13540363420..ea2d91867635 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/HostPlatformColor.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/HostPlatformColor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h index 3a0e863fda0d..84b81fec280a 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/Float.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/Float.h index ef09235874e9..361abfda591e 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/Float.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/Float.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h index a7dd98139991..80d61ff89d05 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.h index 3ff2aa38cfd5..28afc62d43f3 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/PlatformColorParser.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h index ad021c1e413f..bfd96f122819 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h @@ -7,6 +7,8 @@ #pragma once +#include + #import #import diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/rounding.h b/packages/react-native/ReactCommon/react/renderer/graphics/rounding.h index be34277849f6..b5f93f2891f5 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/rounding.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/rounding.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/tests/UmbrellaCompileTest.cpp b/packages/react-native/ReactCommon/react/renderer/graphics/tests/UmbrellaCompileTest.cpp new file mode 100644 index 000000000000..8598cec03347 --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/graphics/tests/UmbrellaCompileTest.cpp @@ -0,0 +1,8 @@ +/* + * 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. + */ + +#include diff --git a/packages/react-native/scripts/ios-prebuild/headers-config.js b/packages/react-native/scripts/ios-prebuild/headers-config.js index 2045b50ceae2..0545ca61a71a 100644 --- a/packages/react-native/scripts/ios-prebuild/headers-config.js +++ b/packages/react-native/scripts/ios-prebuild/headers-config.js @@ -504,6 +504,22 @@ const PodspecExceptions /*: {[key: string]: PodSpecConfiguration} */ = { }, ], }, + 'ReactCommon/react/renderer/graphics/React-graphics.podspec': { + name: 'React-graphics', + headerPatterns: ['react/renderer/graphics/**/*.h'], + excludePatterns: [ + 'react/renderer/graphics/tests', + 'react/renderer/graphics/React', + ], + headerDir: 'react/renderer/graphics', + subSpecs: [ + { + name: 'GraphicsUmbrella', + headerPatterns: ['react/renderer/graphics/React/*.h'], + headerDir: 'React', + }, + ], + }, 'React-Core.podspec': { name: 'React-Core', headerPatterns: [],