diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index a23677f3f547..4fc6969641d2 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -172,6 +172,10 @@ val preparePrefab by "../ReactCommon/react/renderer/components/view/", "react/renderer/components/view/", ), + Pair( + "../ReactCommon/react/renderer/components/view/React/", + "React/", + ), Pair("../ReactCommon/react/renderer/components/view/platform/android/", ""), // rrc_root Pair( @@ -191,6 +195,10 @@ val preparePrefab by "../ReactCommon/react/renderer/components/text/", "react/renderer/components/text/", ), + Pair( + "../ReactCommon/react/renderer/components/text/React/", + "React/", + ), Pair( "../ReactCommon/react/renderer/attributedstring", "react/renderer/attributedstring", diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index a92fe2abc49d..4b703443fc41 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -42,6 +42,7 @@ Pod::Spec.new do |s| s.dependency "React-logger" s.dependency "React-Core" s.dependency "React-debug" + s.dependency "React-cxxstableapi" s.dependency "React-featureflags" s.dependency "React-runtimescheduler" s.dependency "React-cxxreact" @@ -137,6 +138,12 @@ Pod::Spec.new do |s| sss.header_dir = "react/renderer/components/view" end + ss.subspec "viewUmbrella" do |sss| + sss.source_files = "react/renderer/components/view/React/*.h" + sss.header_dir = "React" + sss.header_mappings_dir = "react/renderer/components/view/React" + end + 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" diff --git a/packages/react-native/ReactCommon/React-FabricComponents.podspec b/packages/react-native/ReactCommon/React-FabricComponents.podspec index 500dd3d8e31b..cd401cb1cb82 100644 --- a/packages/react-native/ReactCommon/React-FabricComponents.podspec +++ b/packages/react-native/ReactCommon/React-FabricComponents.podspec @@ -60,6 +60,7 @@ Pod::Spec.new do |s| s.dependency "React-logger" s.dependency "React-Core" s.dependency "React-debug" + s.dependency "React-cxxstableapi" s.dependency "React-featureflags" s.dependency "React-utils" s.dependency "React-runtimescheduler" @@ -120,6 +121,12 @@ Pod::Spec.new do |s| sss.header_dir = "react/renderer/components/text" end + ss.subspec "textUmbrella" do |sss| + sss.source_files = "react/renderer/components/text/React/*.h" + sss.header_dir = "React" + sss.header_mappings_dir = "react/renderer/components/text/React" + end + ss.subspec "iostextinput" do |sss| sss.source_files = podspec_sources(["react/renderer/components/textinput/*.{m,mm,cpp,h}", "react/renderer/components/textinput/platform/ios/**/*.{m,mm,cpp,h}"], diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/BaseParagraphComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/text/BaseParagraphComponentDescriptor.h index 8c7c8aab798f..553ee1909936 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/BaseParagraphComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/BaseParagraphComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/BaseParagraphProps.h b/packages/react-native/ReactCommon/react/renderer/components/text/BaseParagraphProps.h index 72ba6e0fb3dd..63fac5e94b34 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/BaseParagraphProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/BaseParagraphProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextProps.h b/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextProps.h index 732288d87c44..8d65e9d24309 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextShadowNode.h index 09d88b9b3c43..f583de995da6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h index 3f64c6e8cb7a..b2461269f869 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphEventEmitter.h index d571b914d874..97ed8e8272af 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphProps.h b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphProps.h index ba3ddbe1a93f..dcb82a445794 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h index 704088cbaae6..e6f410ac86af 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/RawTextComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/text/RawTextComponentDescriptor.h index 92a67af3139b..4c242a061869 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/RawTextComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/RawTextComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/RawTextProps.h b/packages/react-native/ReactCommon/react/renderer/components/text/RawTextProps.h index fb8cea5dbbcc..f350702dce94 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/RawTextProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/RawTextProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/RawTextShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/text/RawTextShadowNode.h index 940916f8b483..08eceac345e6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/RawTextShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/React/Text.h b/packages/react-native/ReactCommon/react/renderer/components/text/React/Text.h new file mode 100644 index 000000000000..6670d8a7b367 --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/components/text/React/Text.h @@ -0,0 +1,53 @@ +/* + * 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/text` 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 + +#ifdef ANDROID +#include +#include +#endif + +#undef RN_UMBRELLA_CONTEXT diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/SelectableParagraphComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/text/SelectableParagraphComponentDescriptor.h index b008580f5885..182e5c7af9c6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/SelectableParagraphComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/SelectableParagraphComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/SelectableParagraphShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/text/SelectableParagraphShadowNode.h index 8574dd601abd..4e1417476efc 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/SelectableParagraphShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/SelectableParagraphShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/TextComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/text/TextComponentDescriptor.h index 067dfefba206..e072df2f5751 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/TextComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/TextComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectComponentDescriptor.h index 4fb2917f0ae6..c5970c859b57 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectProps.h b/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectProps.h index 42cb2ffa62db..d1d503af5f40 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectShadowNode.h index 60185ce039b9..39a980d2a37c 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/TextEffectShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/TextProps.h b/packages/react-native/ReactCommon/react/renderer/components/text/TextProps.h index 164a8e5358cd..17a9e6c7ca92 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/TextProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/TextProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/TextShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/text/TextShadowNode.h index 1fb00e59a255..168a6ddc79ad 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/TextShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/TextShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.h b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.h index 93b6f1002ff3..6cb286ef0efb 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h index 6596b55a6acd..6b6ff366c132 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/conversions.h b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/conversions.h index 5740fa5927ba..e88c8ce8f191 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/conversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/primitives.h b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/primitives.h index 30f9bd623f59..213c6e9783ce 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/primitives.h @@ -7,6 +7,8 @@ #pragma once +#include + namespace facebook::react { enum class DataDetectorType { diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/platform/cxx/react/renderer/components/text/HostPlatformParagraphProps.h b/packages/react-native/ReactCommon/react/renderer/components/text/platform/cxx/react/renderer/components/text/HostPlatformParagraphProps.h index 68295043fdab..48f82a5f79c6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/platform/cxx/react/renderer/components/text/HostPlatformParagraphProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/platform/cxx/react/renderer/components/text/HostPlatformParagraphProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/platform/cxx/react/renderer/components/text/ParagraphState.h b/packages/react-native/ReactCommon/react/renderer/components/text/platform/cxx/react/renderer/components/text/ParagraphState.h index 9d0fa0dae8ac..b48650195ddc 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/platform/cxx/react/renderer/components/text/ParagraphState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/platform/cxx/react/renderer/components/text/ParagraphState.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/stateConversions.h b/packages/react-native/ReactCommon/react/renderer/components/text/stateConversions.h index 593671dcc928..58e555b34f3a 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/stateConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/text/stateConversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #ifdef RN_SERIALIZABLE_STATE diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h index 8994a42231e7..df8d08b2bf6e 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h index 8fef1a5f9571..aa739ab422ae 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h index a3f2e01c130c..d85b76e806b3 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputState.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputState.h index 9f728d9335f5..a34abdf73c83 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputState.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h index de4bcdc64436..ef5972293e16 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/baseConversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/basePrimitives.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/basePrimitives.h index 68fbdb9ccc48..ac0089c9d69b 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/basePrimitives.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/basePrimitives.h @@ -7,6 +7,8 @@ #pragma once +#include + namespace facebook::react { enum class SubmitBehavior { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h index fb44034605b5..49bb7e6fd07d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include "AndroidTextInputShadowNode.h" #include "AndroidTextInputState.h" diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h index 688c7e4c084a..d51b41a30580 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h index d43f97bf811f..155427e437c1 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h index 8a1d6d969904..a5c113c6452d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include "AndroidTextInputEventEmitter.h" #include "AndroidTextInputProps.h" #include "AndroidTextInputState.h" diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h index 9655ba81a762..083ad10db87b 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h index 4ad058cf7a5c..2af5a1f6e2ee 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h index 317fff3cbf62..1475b17584c0 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h index 96e9de4525a6..154dedb8dee7 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h index 9de9d0e8831e..99c11a3abec1 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/conversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/primitives.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/primitives.h index 942eeeb8805b..1e7f32b6e317 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/primitives.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h index 54921b3fca46..3f239f96cbef 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/propsConversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h b/packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h index 07452872140d..4a2ff7e1d4ef 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityProps.h index c664b8461e2f..53524bb4a015 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.h index aaea4da730db..7db2cc39881b 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/BackgroundImagePropsConversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/BaseTouch.h b/packages/react-native/ReactCommon/react/renderer/components/view/BaseTouch.h index c8473d65b388..617e4e872f7e 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/BaseTouch.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/BaseTouch.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewEventEmitter.h index e556d1e97547..8d9978a80fc2 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.h index 7554ba7cad86..c78c4f38729b 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/BoxShadowPropsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/view/BoxShadowPropsConversions.h index c3cb54348757..a5b779d0b96d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/BoxShadowPropsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/BoxShadowPropsConversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/CSSConversions.h b/packages/react-native/ReactCommon/react/renderer/components/view/CSSConversions.h index de02ce2016f6..ae3bf593b629 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/CSSConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/CSSConversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h index 3d7d68a95936..6c71d73c1eca 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/FilterPropsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/view/FilterPropsConversions.h index c24851104535..0bb301979286 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/FilterPropsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/FilterPropsConversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h index 39250be8df81..55b3389958fc 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h index 6e80c3508e6f..dcf81de41678 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h index 9621c6295b1c..40eb27a32865 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/PointerEvent.h b/packages/react-native/ReactCommon/react/renderer/components/view/PointerEvent.h index 218782c5e684..b37158f4f663 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/PointerEvent.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/PointerEvent.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h b/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h new file mode 100644 index 000000000000..11325cb22230 --- /dev/null +++ b/packages/react-native/ReactCommon/react/renderer/components/view/React/View.h @@ -0,0 +1,78 @@ +/* + * 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/view` 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. Scoped to +// this block so later *direct* includes in the same TU are still caught. +#define RN_UMBRELLA_CONTEXT + +#if defined(__APPLE__) +#include +#endif + +#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 +#include +#include +#include +#include +#include + +#ifdef ANDROID +#include +#endif + +#if defined(TARGET_OS_OSX) && TARGET_OS_OSX +#include +#include +#include +#endif + +#ifdef USE_WINUI_FABRIC +#include +#include +#endif + +#undef RN_UMBRELLA_CONTEXT diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/Touch.h b/packages/react-native/ReactCommon/react/renderer/components/view/Touch.h index 98089756363a..a55ae845b050 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/Touch.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/Touch.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/TouchEvent.h b/packages/react-native/ReactCommon/react/renderer/components/view/TouchEvent.h index 94819dc3cbf1..ca905efc3cab 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/TouchEvent.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/TouchEvent.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/TouchEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/view/TouchEventEmitter.h index 7f8fa707cc9a..018bfbea2dd5 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/TouchEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/TouchEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h b/packages/react-native/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h index e1958134b4c8..d6cba8f4d448 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/ViewEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/view/ViewEventEmitter.h index 2ad0d4e41905..d3556da5ed83 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/ViewEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/ViewEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/ViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/ViewProps.h index 7b418dc34fad..3ae174a9d668 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/ViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/ViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h b/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h index 55bf085c7d25..143a13566a9d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/ViewShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/view/ViewShadowNode.h index b3195934440a..ac8608d84b8e 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/ViewShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/ViewShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h b/packages/react-native/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h index 905b98ecaa66..47edf4e9e4ad 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/YogaStylableProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/YogaStylableProps.h index 6febf08d5ce4..42fca6ce6cf4 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/YogaStylableProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/YogaStylableProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h index d9c0283a025e..0e4452fd466f 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/conversions.h b/packages/react-native/ReactCommon/react/renderer/components/view/conversions.h index c6c2c88a4981..743b0e7a57d3 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/conversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformTouch.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformTouch.h index 0d441117751c..f848db81e7b8 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformTouch.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformTouch.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewEventEmitter.h index 24c9a19a7f4d..e92956e1c02d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h index 154be6f017b3..40310cd643c0 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewTraitsInitializer.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewTraitsInitializer.h index 16b32af2b939..5f14636e212a 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewTraitsInitializer.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h index 67c5a2bb27b5..b011af979f08 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/NativeDrawable.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformTouch.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformTouch.h index 0d441117751c..f848db81e7b8 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformTouch.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformTouch.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewEventEmitter.h index 24c9a19a7f4d..e92956e1c02d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewProps.h index 527985d29902..92d4347cc022 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h index 032e6377aaf6..8221df0b4d72 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/cxx/react/renderer/components/view/HostPlatformViewTraitsInitializer.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h index 0d441117751c..f848db81e7b8 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformTouch.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h index 24c9a19a7f4d..e92956e1c02d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewEventEmitter.h @@ -7,6 +7,8 @@ #pragma once +#include + #include namespace facebook::react { diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h index b50dd4f4f2b0..e225f73e83ff 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewProps.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h b/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h index a423f3192a6b..6c82649f882d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/tvos/react/renderer/components/view/HostPlatformViewTraitsInitializer.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/primitives.h b/packages/react-native/ReactCommon/react/renderer/components/view/primitives.h index aa7e385229f6..6c6e5b4def92 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/primitives.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/propsConversions.h b/packages/react-native/ReactCommon/react/renderer/components/view/propsConversions.h index 54602ebaf2f1..0700ae911159 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/propsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/propsConversions.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/scripts/cxx-api/umbrella-codemod.py b/scripts/cxx-api/umbrella-codemod.py new file mode 100644 index 000000000000..258a561a38d5 --- /dev/null +++ b/scripts/cxx-api/umbrella-codemod.py @@ -0,0 +1,454 @@ +#!/usr/bin/env fbpython +# 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. + +import argparse +import re +from pathlib import Path + +GUARD = { + "public": "UmbrellaGuard.h", + "frameworks": "FrameworksGuard.h", + "private": "PrivateGuard.h", +} +LICENSE = """/* + * 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. + */ +""" + +CXXSTABLEAPI_DEP = 'react_native_xplat_target("react/cxxstableapi:cxxstableapi")' + + +class Codemod: + def __init__(self, apply: bool): + self.apply = apply + self.changed = [] + self.warnings = [] + + def _write(self, path: Path, text: str): + rel = path.name + if self.apply: + path.write_text(text) + print(f" ~ wrote {rel}") + else: + print(f" ~ (dry-run) would write {rel}") + self.changed.append(str(path)) + + def warn(self, msg: str): + self.warnings.append(msg) + print(f" !! {msg}") + + # ---- discovery ------------------------------------------------------- + @staticmethod + def public_headers(d: Path): + # Top-level *.h only (matches the standard subdir_glob([("", "*.h")])). + # Excludes the React/ umbrella subdir, which is a child dir. + return sorted(p for p in d.glob("*.h") if p.is_file()) + + @staticmethod + def module_prefix(buck: str): + m = re.search(r'prefix\s*=\s*"([^"]+)"', buck) + return m.group(1) + + # ---- header guards --------------------------------------------------- + def add_guard_include(self, path: Path, guard: str): + text = path.read_text() + inc = f"#include " + if inc in text: + return + m = re.search(r"#pragma once\n", text) + if not m: + self.warn(f"no #pragma once in {path.name}; skipped guard") + return + end = m.end() + rest = text[end:] + rest = rest[1:] if rest.startswith("\n") else rest + self._write(path, text[:end] + "\n" + inc + "\n\n" + rest) + + # ---- umbrella -------------------------------------------------------- + def write_umbrella(self, d: Path, prefix: str, name: str, headers): + incs = "\n".join(f"#include <{prefix}/{h.name}>" for h in headers) + body = f"""{LICENSE} +#pragma once + +// ============================================================================= +// Umbrella header for the `{prefix}` module - public entry point. +// +// #include +// +// Re-exports the module's public interface headers. React Native's own code +// should keep using the fine-grained `<{prefix}/...>` includes; only outside +// consumers use this umbrella. +// ============================================================================= + +// Marks that the following headers are pulled in through the umbrella, so their +// shared guard () accepts them. Scoped to +// this block so later *direct* includes in the same TU are still caught. +#define RN_UMBRELLA_CONTEXT + +{incs} + +#undef RN_UMBRELLA_CONTEXT +""" + out = d / "React" / f"{name}.h" + if self.apply: + out.parent.mkdir(exist_ok=True) + self._write(out, body) + + # ---- BUCK ------------------------------------------------------------ + @staticmethod + def _match_paren(text: str, open_idx: int) -> int: + """Index just past the ')' that matches the '(' at open_idx.""" + depth, i = 0, open_idx + while i < len(text): + if text[i] == "(": + depth += 1 + elif text[i] == ")": + depth -= 1 + if depth == 0: + return i + 1 + i += 1 + return len(text) + + @classmethod + def _enclosing_rule(cls, text: str, pos: int): + """(start, end) of the top-level call (e.g. rn_xplat_cxx_library(...)) + that encloses `pos`. Used to scope edits to the right target in BUCK + files that declare several libraries.""" + starts = [ + m.start() for m in re.finditer(r"^\w+\(", text, re.M) if m.start() < pos + ] + if not starts: + return None + start = starts[-1] + return (start, cls._match_paren(text, text.find("(", start))) + + def _exclude_react_from_headers(self, block: str) -> str: + """Exclude React/** from a private `headers = glob(...)` so the umbrella + does not flatten into a basename collision with a real header.""" + hm = re.search(r"headers\s*=\s*glob\(", block) + if not hm: + return block # header-only module: no private headers glob + hstart = block.index("(", hm.start()) + hend = self._match_paren(block, hstart) + hglob = block[hstart:hend] + if "React/**/*.h" in hglob: + return block + ex = re.search(r"exclude\s*=\s*glob\(", hglob) + if ex: + ex_end = self._match_paren(hglob, hglob.index("(", ex.start())) + new = hglob[:ex_end] + ' + ["React/**/*.h"]' + hglob[ex_end:] + else: + new = hglob[:-1].rstrip() + ', exclude = ["React/**/*.h"])' + return block[:hstart] + new + block[hend:] + + def edit_buck(self, d: Path, tier: str, name: str): + buck = d / "BUCK" + text = orig = buck.read_text() + + if "react_native_xplat_target" not in text: + text = text.replace( + '"rn_xplat_cxx_library"', + '"react_native_xplat_target",\n "rn_xplat_cxx_library"', + 1, + ) + + ehm = re.search(r"^\s*exported_headers\s*=", text, re.M) + if ehm is None: + self.warn("no exported_headers field in BUCK; wire deps/flags by hand") + if text != orig: + self._write(buck, text) + return + eh = ehm.start() + + # public: merge the umbrella into exported_headers (idempotent). + if tier == "public": + if f'"React/{name}.h"' in text: + pass # already merged + else: + sg = text.find("subdir_glob(", eh) + if sg != -1: + i = self._match_paren(text, text.index("(", sg)) + # If the subdir_glob is part of a larger expression -- e.g. + # `subdir_glob(...) + selects.with_or(...)` -- inserting the + # union here would break operator precedence and produce a + # `dict | Select` parse error. Detect and skip. + tail = text[i : i + 200].lstrip() + if tail.startswith(("+", "|")): + self.warn( + "exported_headers is an aggregate expression " + "(subdir_glob + ...); merge the umbrella " + f'"React/{name}.h" into exported_headers by hand' + ) + else: + union = f' | {{\n "React/{name}.h": "React/{name}.h",\n }}' + text = text[:i] + union + text[i:] + else: + self.warn( + "exported_headers is not a plain subdir_glob; merge the " + f'umbrella "React/{name}.h" into exported_headers by hand' + ) + + # Scope the remaining edits to the rule that owns exported_headers, so a + # multi-target BUCK file (e.g. a separate `test-deps` lib) gets the dep + # and flags on the right target. Match the field assignment (not a stray + # "exported_headers" mention in a comment). + ehm = re.search(r"^\s*exported_headers\s*=", text, re.M) + span = self._enclosing_rule(text, ehm.start()) + if span is None: + self.warn("could not locate the enclosing library rule in BUCK") + if text != orig: + self._write(buck, text) + return + s, e = span + block = self._wire_library_block(text[s:e], tier) + text = text[:s] + block + text[e:] + if text != orig: + self._write(buck, text) + + def _wire_library_block(self, block: str, tier: str) -> str: + """Add the cxxstableapi exported_dep, -DRN_BUILDING, and (public) the + React/** headers-glob exclusion to a single library rule block.""" + if "react/cxxstableapi:cxxstableapi" not in block: + if "exported_deps = [" in block: + block = block.replace( + "exported_deps = [", + f"exported_deps = [\n {CXXSTABLEAPI_DEP},", + 1, + ) + elif "\n visibility = " in block: + block = block.replace( + "\n visibility = ", + f"\n exported_deps = [{CXXSTABLEAPI_DEP}],\n visibility = ", + 1, + ) + else: + self.warn("could not add cxxstableapi exported_dep to BUCK") + if "RN_BUILDING" not in block: + if "preprocessor_flags" in block: + # Existing preprocessor_flags assignment - inserting another + # would produce a "repeated named argument" Starlark error. + # Skip and let the maintainer merge -DRN_BUILDING manually. + self.warn( + "preprocessor_flags already set; add -DRN_BUILDING to the " + "existing assignment by hand" + ) + elif "\n visibility = " in block: + block = block.replace( + "\n visibility = ", + '\n preprocessor_flags = ["-DRN_BUILDING"],\n visibility = ', + 1, + ) + if tier == "public": + block = self._exclude_react_from_headers(block) + return block + + # ---- CMake ----------------------------------------------------------- + def edit_cmake(self, d: Path, tier: str): + cm = d / "CMakeLists.txt" + if not cm.exists(): + self.warn("no CMakeLists.txt") + return + text = orig = cm.read_text() + m = re.search(r"add_library\((\w+)(\s+INTERFACE)?", text) + if not m: + self.warn("no add_library in CMakeLists.txt") + return + tgt = m.group(1) + # INTERFACE libs need the INTERFACE keyword; OBJECT/STATIC use plain + # link + PUBLIC includes. Mixing forms on one target is a CMake error. + iface = bool(m.group(2)) + link_scope = "INTERFACE " if iface else "" + inc_scope = "INTERFACE" if iface else "PUBLIC" + if "react_cxxstableapi" not in text: + text += f"\ntarget_link_libraries({tgt} {link_scope}react_cxxstableapi)\n" + if tier == "public" and "CMAKE_CURRENT_SOURCE_DIR" not in text: + text += ( + "\n# Vend the umbrella as : expose the module dir so " + "the\n# React/ subdir resolves for dependents.\n" + f"target_include_directories({tgt} {inc_scope} " + "${CMAKE_CURRENT_SOURCE_DIR})\n" + ) + if text != orig: + self._write(cm, text) + + # ---- podspec --------------------------------------------------------- + def edit_podspec(self, d: Path, tier: str): + specs = list(d.glob("*.podspec")) + if not specs: + self.warn("no podspec") + return + spec = specs[0] + text = orig = spec.read_text() + + if "React-cxxstableapi" not in text: + text = re.sub( + r"(resolve_use_frameworks\([^\n]*\)\n)", + r'\1\n s.dependency "React-cxxstableapi"\n', + text, + count=1, + ) + + if tier == "public" and 'subspec "Umbrella"' not in text: + if re.search(r's\.exclude_files\s*=\s*"', text): + text = re.sub( + r's\.exclude_files\s*=\s*"([^"]*)"', + r's.exclude_files = ["\1", "React"]', + text, + count=1, + ) + elif "exclude_files" not in text: + text = re.sub( + r'(\n\s*s\.header_dir\s*=\s*"[^"]*"\n)', + r'\1 s.exclude_files = "React"\n', + text, + count=1, + ) + subspec = ( + '\n s.subspec "Umbrella" do |ss|\n' + ' ss.source_files = "React/*.h"\n' + ' ss.header_dir = "React"\n' + ' ss.header_mappings_dir = "React"\n' + " end\n" + ) + last = text.rfind("\nend") + text = text[:last] + "\n" + subspec + text[last:] + + if text != orig: + self._write(spec, text) + + # ---- Android Prefab (central build.gradle.kts) ----------------------- + def edit_gradle(self, d: Path, prefix: str): + # Find packages/react-native ancestor to locate the gradle file. + parts = d.parts + try: + i = len(parts) - 1 - parts[::-1].index("react-native") + except ValueError: + self.warn("cannot locate packages/react-native for gradle edit") + return + gradle = Path(*parts[: i + 1]) / "ReactAndroid" / "build.gradle.kts" + if not gradle.exists(): + self.warn(f"gradle file not found at {gradle}") + return + text = gradle.read_text() + umbrella_pair = ( + f"Pair(\n " + f'"../ReactCommon/{prefix}/React/",\n ' + f'"React/",\n ),' + ) + if f'"../ReactCommon/{prefix}/React/"' in text: + return # already added + # Locate the module's existing source Pair and insert after its `),`. + anchor = f'"../ReactCommon/{prefix}/"' + pos = text.find(anchor) + if pos == -1: + self.warn( + f"no Prefab entry for {prefix}; if it is Android-exposed, add the " + f" Pair to build.gradle.kts by hand" + ) + return + close = text.find("),", pos) + if close == -1: + self.warn(f"malformed Prefab entry for {prefix}; add gradle Pair by hand") + return + insert_at = close + 2 + new = ( + text[:insert_at] + + "\n " + + umbrella_pair + + text[insert_at:] + ) + if new != text: + self._write(gradle, new) + + # ---- driver ---------------------------------------------------------- + def run_target(self, d: Path, tier: str, name: str): + if tier not in GUARD: + self.warn(f"{d}: bad tier {tier!r}; skipped") + return + if not (d / "BUCK").exists(): + self.warn(f"{d}: no BUCK; skipped") + return + if tier == "public" and not name: + self.warn(f"{d}: public tier needs a name; skipped") + return + buck = (d / "BUCK").read_text() + try: + prefix = self.module_prefix(buck) + except AttributeError: + self.warn(f"{d}: no subdir_glob prefix in BUCK; skipped") + return + headers = self.public_headers(d) + print( + f"\n== {d.name} tier={tier} prefix={prefix} " + f"headers={[h.name for h in headers]}" + ) + for h in headers: + self.add_guard_include(h, GUARD[tier]) + if tier == "public": + self.write_umbrella(d, prefix, name, headers) + self.edit_buck(d, tier, name or "") + self.edit_cmake(d, tier) + self.edit_podspec(d, tier) + if tier == "public": + self.edit_gradle(d, prefix) + + +def parse_config(path: Path): + out = [] + for raw in path.read_text().splitlines(): + line = raw.split("#", 1)[0].strip() + if not line: + continue + cols = [c.strip() for c in line.split("|")] + d, tier = cols[0], cols[1] + name = cols[2] if len(cols) > 2 else "" + out.append((d, tier, name)) + return out + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--target", help="single target dir") + ap.add_argument("--tier", choices=list(GUARD)) + ap.add_argument("--name", default="", help="umbrella name (public only)") + ap.add_argument("--config", help="batch config file: `dir | tier | name?`") + ap.add_argument("--root", default=".", help="base dir for relative target paths") + ap.add_argument( + "--apply", action="store_true", help="write changes (default: dry-run)" + ) + args = ap.parse_args() + + root = Path(args.root).resolve() + targets = [] + if args.config: + targets = parse_config(Path(args.config)) + elif args.target: + targets = [(args.target, args.tier, args.name)] + else: + ap.error("provide --target/--tier or --config") + + cm = Codemod(apply=args.apply) + print("MODE:", "APPLY" if args.apply else "DRY-RUN") + for d, tier, name in targets: + p = Path(d) + if not p.is_absolute(): + p = (root / d).resolve() + cm.run_target(p, tier, name) + + print( + f"\nsummary: {len(cm.changed)} file(s) " + f"{'written' if args.apply else 'would change'}, " + f"{len(cm.warnings)} warning(s)" + ) + if not args.apply: + print("dry-run only; re-run with --apply to write, then `arc f`.") + + +if __name__ == "__main__": + main()