diff --git a/packages/react-native/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec b/packages/react-native/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec index 06852c0a06eb..5993899241eb 100644 --- a/packages/react-native/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +++ b/packages/react-native/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec @@ -31,4 +31,6 @@ Pod::Spec.new do |s| s.header_dir = "RCTActionSheet" s.dependency "React-Core/RCTActionSheetHeaders", version + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec index c4322bc2c36b..64172f4cc59c 100644 --- a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec +++ b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec @@ -86,4 +86,6 @@ Pod::Spec.new do |s| depend_on_js_engine(s) add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/Blob/React-RCTBlob.podspec b/packages/react-native/Libraries/Blob/React-RCTBlob.podspec index b0cab4521289..344e63726777 100644 --- a/packages/react-native/Libraries/Blob/React-RCTBlob.podspec +++ b/packages/react-native/Libraries/Blob/React-RCTBlob.podspec @@ -56,4 +56,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/FBLazyVector/FBLazyVector.podspec b/packages/react-native/Libraries/FBLazyVector/FBLazyVector.podspec index c8596ac37ec7..1f5794175699 100644 --- a/packages/react-native/Libraries/FBLazyVector/FBLazyVector.podspec +++ b/packages/react-native/Libraries/FBLazyVector/FBLazyVector.podspec @@ -28,4 +28,5 @@ Pod::Spec.new do |s| s.source_files = podspec_sources("**/*.{c,h,m,mm,cpp}", "**/*.h") s.header_dir = "FBLazyVector" + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/Image/React-RCTImage.podspec b/packages/react-native/Libraries/Image/React-RCTImage.podspec index f2692e24c24d..a51db71640aa 100644 --- a/packages/react-native/Libraries/Image/React-RCTImage.podspec +++ b/packages/react-native/Libraries/Image/React-RCTImage.podspec @@ -54,4 +54,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/LinkingIOS/React-RCTLinking.podspec b/packages/react-native/Libraries/LinkingIOS/React-RCTLinking.podspec index 370b6b93d96c..a9aed670dab3 100644 --- a/packages/react-native/Libraries/LinkingIOS/React-RCTLinking.podspec +++ b/packages/react-native/Libraries/LinkingIOS/React-RCTLinking.podspec @@ -48,4 +48,6 @@ Pod::Spec.new do |s| add_dependency(s, "React-RCTFBReactNativeSpec") add_dependency(s, "ReactCommon", :subspec => "turbomodule/core", :additional_framework_paths => ["react/nativemodule/core"]) add_dependency(s, "React-NativeModulesApple", :additional_framework_paths => ["build/generated/ios"]) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/NativeAnimation/React-RCTAnimation.podspec b/packages/react-native/Libraries/NativeAnimation/React-RCTAnimation.podspec index 0f875f66b0cb..14725f8d625e 100644 --- a/packages/react-native/Libraries/NativeAnimation/React-RCTAnimation.podspec +++ b/packages/react-native/Libraries/NativeAnimation/React-RCTAnimation.podspec @@ -52,4 +52,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/Network/React-RCTNetwork.podspec b/packages/react-native/Libraries/Network/React-RCTNetwork.podspec index 8bc86ff004c4..b5da7fb950d6 100644 --- a/packages/react-native/Libraries/Network/React-RCTNetwork.podspec +++ b/packages/react-native/Libraries/Network/React-RCTNetwork.podspec @@ -54,4 +54,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec b/packages/react-native/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec index ffdf21320f66..1de0c7064efb 100644 --- a/packages/react-native/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +++ b/packages/react-native/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec @@ -50,4 +50,6 @@ Pod::Spec.new do |s| add_dependency(s, "React-NativeModulesApple") add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/Required/RCTRequired.podspec b/packages/react-native/Libraries/Required/RCTRequired.podspec index bf8d0300c6a3..3f33ba5790ac 100644 --- a/packages/react-native/Libraries/Required/RCTRequired.podspec +++ b/packages/react-native/Libraries/Required/RCTRequired.podspec @@ -27,4 +27,6 @@ Pod::Spec.new do |s| s.source = source s.source_files = podspec_sources("**/*.{c,h,m,mm,cpp}", "**/*.h") s.header_dir = "RCTRequired" + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/Settings/React-RCTSettings.podspec b/packages/react-native/Libraries/Settings/React-RCTSettings.podspec index 8bd2c214f601..c721ace08e5d 100644 --- a/packages/react-native/Libraries/Settings/React-RCTSettings.podspec +++ b/packages/react-native/Libraries/Settings/React-RCTSettings.podspec @@ -50,4 +50,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/Text/React-RCTText.podspec b/packages/react-native/Libraries/Text/React-RCTText.podspec index e2240cf1fe6d..4d9bc4d8f9e7 100644 --- a/packages/react-native/Libraries/Text/React-RCTText.podspec +++ b/packages/react-native/Libraries/Text/React-RCTText.podspec @@ -34,4 +34,6 @@ Pod::Spec.new do |s| s.dependency "Yoga" s.dependency "React-Core/RCTTextHeaders", version + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/TypeSafety/RCTTypeSafety.podspec b/packages/react-native/Libraries/TypeSafety/RCTTypeSafety.podspec index 2d4ca98dc64f..5b4d0d4b2dbb 100644 --- a/packages/react-native/Libraries/TypeSafety/RCTTypeSafety.podspec +++ b/packages/react-native/Libraries/TypeSafety/RCTTypeSafety.podspec @@ -36,4 +36,6 @@ Pod::Spec.new do |s| s.dependency "FBLazyVector", version s.dependency "RCTRequired", version s.dependency "React-Core", version + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Libraries/Vibration/React-RCTVibration.podspec b/packages/react-native/Libraries/Vibration/React-RCTVibration.podspec index 9768c13d4b38..7ec8ffe35e1f 100644 --- a/packages/react-native/Libraries/Vibration/React-RCTVibration.podspec +++ b/packages/react-native/Libraries/Vibration/React-RCTVibration.podspec @@ -50,4 +50,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/Package.swift b/packages/react-native/Package.swift index 57ec592fd570..d6e77e2e532c 100644 --- a/packages/react-native/Package.swift +++ b/packages/react-native/Package.swift @@ -948,6 +948,10 @@ extension Target { CXXSetting.headerSearchPath(relativeSearchPath(numOfSlash + 1, ".build/headers/React")), ] + // Every target built through this factory is React Native's own, so RN_BUILDING + // keeps the react/cxxstableapi guards inert for internal sources. cxxSettings are + // per-target and are not inherited by packages that depend on React, so this does + // not exempt consumers from the guards. let cxxSettings = [ .unsafeFlags(["-std=c++20"]), @@ -956,6 +960,7 @@ extension Target { .define("USE_HERMES", to: "1"), .define("RCT_REMOVE_LEGACY_ARCH", to: "1"), .define("HERMES_V1_ENABLED", to: "1"), + .define("RN_BUILDING", to: "1"), ] + defines + cxxCommonHeaderPaths return .target( diff --git a/packages/react-native/React-Core-prebuilt.podspec b/packages/react-native/React-Core-prebuilt.podspec index bc838fafef3a..81ffdbd933d9 100644 --- a/packages/react-native/React-Core-prebuilt.podspec +++ b/packages/react-native/React-Core-prebuilt.podspec @@ -103,4 +103,6 @@ Pod::Spec.new do |s| s.script_phase = script_phase end + + mark_as_react_native_build(s) end diff --git a/packages/react-native/React-Core.podspec b/packages/react-native/React-Core.podspec index 88115a1790ec..4e5802e7035d 100644 --- a/packages/react-native/React-Core.podspec +++ b/packages/react-native/React-Core.podspec @@ -141,4 +141,6 @@ Pod::Spec.new do |s| depend_on_js_engine(s) add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/React.podspec b/packages/react-native/React.podspec index 59b9f8319ae3..a7e68f9c6506 100644 --- a/packages/react-native/React.podspec +++ b/packages/react-native/React.podspec @@ -53,4 +53,6 @@ Pod::Spec.new do |s| s.dependency "React-RCTSettings", version s.dependency "React-RCTText", version s.dependency "React-RCTVibration", version + + mark_as_react_native_build(s) end diff --git a/packages/react-native/React/CoreModules/React-CoreModules.podspec b/packages/react-native/React/CoreModules/React-CoreModules.podspec index 2d8b9aa21d12..215fee2e474a 100644 --- a/packages/react-native/React/CoreModules/React-CoreModules.podspec +++ b/packages/react-native/React/CoreModules/React-CoreModules.podspec @@ -67,4 +67,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/React/React-RCTFBReactNativeSpec.podspec b/packages/react-native/React/React-RCTFBReactNativeSpec.podspec index f9978b78aca4..9f9901674043 100644 --- a/packages/react-native/React/React-RCTFBReactNativeSpec.podspec +++ b/packages/react-native/React/React-RCTFBReactNativeSpec.podspec @@ -92,4 +92,6 @@ fi EOS } ] + + mark_as_react_native_build(s) end diff --git a/packages/react-native/React/React-RCTFabric.podspec b/packages/react-native/React/React-RCTFabric.podspec index c6cd5687f2d6..58d13ad3bcdf 100644 --- a/packages/react-native/React/React-RCTFabric.podspec +++ b/packages/react-native/React/React-RCTFabric.podspec @@ -109,4 +109,6 @@ Pod::Spec.new do |s| test_spec.source_files = podspec_sources("Tests/**/*.{mm}", "") test_spec.framework = "XCTest" end + + mark_as_react_native_build(s) end diff --git a/packages/react-native/React/Runtime/React-RCTRuntime.podspec b/packages/react-native/React/Runtime/React-RCTRuntime.podspec index 76b745957eb5..df1413eafa68 100644 --- a/packages/react-native/React/Runtime/React-RCTRuntime.podspec +++ b/packages/react-native/React/Runtime/React-RCTRuntime.podspec @@ -69,4 +69,6 @@ Pod::Spec.new do |s| depend_on_js_engine(s) add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactAndroid/src/main/jni/CMakeLists.txt b/packages/react-native/ReactAndroid/src/main/jni/CMakeLists.txt index 00bbc586170d..9fad7aff3108 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/CMakeLists.txt +++ b/packages/react-native/ReactAndroid/src/main/jni/CMakeLists.txt @@ -58,6 +58,14 @@ add_react_third_party_ndk_subdir(fast_float) add_react_third_party_ndk_subdir(fmt) add_react_third_party_ndk_subdir(folly) +# Marks everything added below as React Native's own build, so the +# react/cxxstableapi guards let internal sources keep including the +# fine-grained headers they fence off from consumers. Deliberately declared +# after the third-party subdirectories so it never reaches them, and this +# project never compiles app or third-party module code (those build against +# the prefab artifacts through ReactNative-application.cmake). +add_compile_definitions(RN_BUILDING) + # Common targets add_react_common_subdir(yoga) add_react_common_subdir(runtimeexecutor) diff --git a/packages/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec b/packages/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec index 303ca62dc681..57bce8e5e11a 100644 --- a/packages/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +++ b/packages/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec @@ -22,4 +22,6 @@ Pod::Spec.new do |s| "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() } s.compiler_flags = "-Wnullable-to-nonnull-conversion -Wnullability-completeness" + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec b/packages/react-native/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec index c7b786268930..f71dd4e6ae89 100644 --- a/packages/react-native/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec +++ b/packages/react-native/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec @@ -60,4 +60,6 @@ Pod::Spec.new do |s| depend_on_js_engine(s) add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec b/packages/react-native/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec index c0b07cd6d9a8..9fcc6b91136d 100644 --- a/packages/react-native/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +++ b/packages/react-native/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec @@ -36,4 +36,5 @@ Pod::Spec.new do |s| "DEFINES_MODULE" => "YES", } + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec b/packages/react-native/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec index 135b2bb5ccb0..ac83cb032d13 100644 --- a/packages/react-native/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +++ b/packages/react-native/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec @@ -34,4 +34,5 @@ Pod::Spec.new do |s| "SWIFT_VERSION" => "5.0", } + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index 183c039786eb..6cfa9af4028b 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -236,4 +236,6 @@ Pod::Spec.new do |s| ss.source_files = podspec_sources("react/renderer/viewtransition/**/*.{m,mm,cpp,h}", "react/renderer/viewtransition/**/*.h") ss.header_dir = "react/renderer/viewtransition" end + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/React-FabricComponents.podspec b/packages/react-native/ReactCommon/React-FabricComponents.podspec index b6a28b32d05a..3113cbcda627 100644 --- a/packages/react-native/ReactCommon/React-FabricComponents.podspec +++ b/packages/react-native/ReactCommon/React-FabricComponents.podspec @@ -160,4 +160,6 @@ Pod::Spec.new do |s| "react/renderer/textlayoutmanager/platform/cxx" ss.header_dir = "react/renderer/textlayoutmanager" end + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/React-FabricImage.podspec b/packages/react-native/ReactCommon/React-FabricImage.podspec index 588b4c4d104b..8182a11a5a74 100644 --- a/packages/react-native/ReactCommon/React-FabricImage.podspec +++ b/packages/react-native/ReactCommon/React-FabricImage.podspec @@ -76,4 +76,6 @@ Pod::Spec.new do |s| depend_on_js_engine(s) add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/React-Mapbuffer.podspec b/packages/react-native/ReactCommon/React-Mapbuffer.podspec index 6df5afd9f1e2..74cef67a4e40 100644 --- a/packages/react-native/ReactCommon/React-Mapbuffer.podspec +++ b/packages/react-native/ReactCommon/React-Mapbuffer.podspec @@ -37,4 +37,6 @@ Pod::Spec.new do |s| add_dependency(s, "React-debug") add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/ReactCommon.podspec b/packages/react-native/ReactCommon/ReactCommon.podspec index a6a9ce6b5668..4e3896458af2 100644 --- a/packages/react-native/ReactCommon/ReactCommon.podspec +++ b/packages/react-native/ReactCommon/ReactCommon.podspec @@ -59,4 +59,6 @@ Pod::Spec.new do |s| sss.dependency "React-utils", version end end + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/callinvoker/React-callinvoker.podspec b/packages/react-native/ReactCommon/callinvoker/React-callinvoker.podspec index 33be754b541f..6290d9867e6d 100644 --- a/packages/react-native/ReactCommon/callinvoker/React-callinvoker.podspec +++ b/packages/react-native/ReactCommon/callinvoker/React-callinvoker.podspec @@ -27,4 +27,6 @@ Pod::Spec.new do |s| s.source = source s.source_files = podspec_sources("**/*.{cpp,h}", "**/*.h") s.header_dir = "ReactCommon" + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/cxxreact/React-cxxreact.podspec b/packages/react-native/ReactCommon/cxxreact/React-cxxreact.podspec index afb31b539288..13b99d6fe617 100644 --- a/packages/react-native/ReactCommon/cxxreact/React-cxxreact.podspec +++ b/packages/react-native/ReactCommon/cxxreact/React-cxxreact.podspec @@ -55,4 +55,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/hermes/React-hermes.podspec b/packages/react-native/ReactCommon/hermes/React-hermes.podspec index 4a2a8533e38b..8b95c8221375 100644 --- a/packages/react-native/ReactCommon/hermes/React-hermes.podspec +++ b/packages/react-native/ReactCommon/hermes/React-hermes.podspec @@ -51,4 +51,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec b/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec index 9ee322ba4489..04a895cc5d1a 100644 --- a/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec +++ b/packages/react-native/ReactCommon/hermes/executor/React-jsitracing.podspec @@ -35,4 +35,6 @@ Pod::Spec.new do |s| resolve_use_frameworks(s, header_mappings_dir: './', module_name: "React_jsitracing") s.dependency "React-jsi" + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec b/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec index 9560c5c66133..41b1b9eb20e5 100644 --- a/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +++ b/packages/react-native/ReactCommon/jserrorhandler/React-jserrorhandler.podspec @@ -48,4 +48,5 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/jsi/React-jsi.podspec b/packages/react-native/ReactCommon/jsi/React-jsi.podspec index 60e18530c97a..5fa453999308 100644 --- a/packages/react-native/ReactCommon/jsi/React-jsi.podspec +++ b/packages/react-native/ReactCommon/jsi/React-jsi.podspec @@ -47,4 +47,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/jsiexecutor/React-jsiexecutor.podspec b/packages/react-native/ReactCommon/jsiexecutor/React-jsiexecutor.podspec index c737b2f516ee..6ceb245318d1 100644 --- a/packages/react-native/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +++ b/packages/react-native/ReactCommon/jsiexecutor/React-jsiexecutor.podspec @@ -48,4 +48,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec b/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec index 770c30f15004..028ffc3b4f18 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec @@ -62,4 +62,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec b/packages/react-native/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec index cff367fda21e..8a7eaf0496d1 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec @@ -45,4 +45,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec b/packages/react-native/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec index c3cc232eb71b..305f80846b36 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec @@ -47,4 +47,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec b/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec index 1b988ab698c7..455d12c8fdef 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec @@ -55,4 +55,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec b/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec index c6a0d7ae7faa..12d77fbab6ba 100644 --- a/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec +++ b/packages/react-native/ReactCommon/jsitooling/React-jsitooling.podspec @@ -50,4 +50,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/logger/React-logger.podspec b/packages/react-native/ReactCommon/logger/React-logger.podspec index d83e10202c61..771445962e6a 100644 --- a/packages/react-native/ReactCommon/logger/React-logger.podspec +++ b/packages/react-native/ReactCommon/logger/React-logger.podspec @@ -31,4 +31,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/oscompat/React-oscompat.podspec b/packages/react-native/ReactCommon/oscompat/React-oscompat.podspec index 74a0abe3b6c3..73d033c29a43 100644 --- a/packages/react-native/ReactCommon/oscompat/React-oscompat.podspec +++ b/packages/react-native/ReactCommon/oscompat/React-oscompat.podspec @@ -28,4 +28,6 @@ Pod::Spec.new do |s| s.source_files = podspec_sources("*.{cpp,h}", "*.{h}") s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "" } s.header_dir = "oscompat" + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/bridging/React-bridging.podspec b/packages/react-native/ReactCommon/react/bridging/React-bridging.podspec index 9e79373a2aae..3a47aa4d2915 100644 --- a/packages/react-native/ReactCommon/react/bridging/React-bridging.podspec +++ b/packages/react-native/ReactCommon/react/bridging/React-bridging.podspec @@ -41,4 +41,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/cxxstableapi/React-cxxstableapi.podspec b/packages/react-native/ReactCommon/react/cxxstableapi/React-cxxstableapi.podspec index 5824fb5da97a..155249286504 100644 --- a/packages/react-native/ReactCommon/react/cxxstableapi/React-cxxstableapi.podspec +++ b/packages/react-native/ReactCommon/react/cxxstableapi/React-cxxstableapi.podspec @@ -31,4 +31,6 @@ Pod::Spec.new do |s| "DEFINES_MODULE" => "YES" } resolve_use_frameworks(s, header_mappings_dir: "../..", module_name: "React_cxxstableapi") + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/debug/React-debug.podspec b/packages/react-native/ReactCommon/react/debug/React-debug.podspec index 8d1d3dc0f51c..b2ec229a73cf 100644 --- a/packages/react-native/ReactCommon/react/debug/React-debug.podspec +++ b/packages/react-native/ReactCommon/react/debug/React-debug.podspec @@ -37,4 +37,6 @@ Pod::Spec.new do |s| ss.exclude_files = "redbox/tests/**/*.{cpp,h}" ss.header_dir = "react/debug/redbox" end + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/featureflags/React-featureflags.podspec b/packages/react-native/ReactCommon/react/featureflags/React-featureflags.podspec index 274177995178..52806c37c732 100644 --- a/packages/react-native/ReactCommon/react/featureflags/React-featureflags.podspec +++ b/packages/react-native/ReactCommon/react/featureflags/React-featureflags.podspec @@ -41,4 +41,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec index 92bf47ef5764..3a9bde9b2591 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec @@ -52,4 +52,6 @@ Pod::Spec.new do |s| depend_on_js_engine(s) add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec index e68eb7c530a4..5c159feb912e 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec @@ -60,4 +60,6 @@ Pod::Spec.new do |s| add_dependency(s, "React-RCTFBReactNativeSpec") add_dependency(s, "React-featureflags") add_dependency(s, "React-featureflagsnativemodule") + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec index 6cc38a3b0fa7..c76d33856eae 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec @@ -58,4 +58,6 @@ Pod::Spec.new do |s| add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) add_dependency(s, "React-graphics", :additional_framework_paths => ["react/renderer/graphics/platform/ios"]) add_dependency(s, "React-RCTFBReactNativeSpec") + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec index 6d4dafcc7076..6aab73bcac0e 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec @@ -50,4 +50,6 @@ Pod::Spec.new do |s| s.dependency "ReactCommon/turbomodule/core" s.dependency "React-RCTFBReactNativeSpec" s.dependency "React-featureflags" + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec index 654e412d5fea..a12c88293416 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec @@ -53,4 +53,5 @@ Pod::Spec.new do |s| add_dependency(s, "React-RCTFBReactNativeSpec") add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec index 4a98cc332a52..d390a2844ba0 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec @@ -64,4 +64,5 @@ Pod::Spec.new do |s| add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) add_dependency(s, "React-graphics", :additional_framework_paths => ["react/renderer/graphics/platform/ios"]) + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec index a41e3d3a3526..37508bc4344e 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec @@ -49,4 +49,6 @@ Pod::Spec.new do |s| s.dependency "ReactCommon/turbomodule/core" add_dependency(s, "React-RCTFBReactNativeSpec") + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec index 67b2cbd6052b..6da891d0c7aa 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec @@ -64,4 +64,5 @@ Pod::Spec.new do |s| add_dependency(s, "React-RCTFBReactNativeSpec") add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec b/packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec index ed456acafef4..dc130cdc74ac 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec @@ -61,4 +61,6 @@ Pod::Spec.new do |s| depend_on_js_engine(s) add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec index 395b78c4b0d1..2b07c8469a4b 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec @@ -55,4 +55,6 @@ Pod::Spec.new do |s| s.dependency "React-Fabric/bridging" add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) add_dependency(s, "React-RCTFBReactNativeSpec") + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec b/packages/react-native/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec index e1615a6ba578..b1d262cf6818 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec +++ b/packages/react-native/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec @@ -58,4 +58,5 @@ Pod::Spec.new do |s| add_dependency(s, "React-performancetimeline") add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"]) + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/networking/React-networking.podspec b/packages/react-native/ReactCommon/react/networking/React-networking.podspec index e8772d03fa2d..2331d3c9ecaf 100644 --- a/packages/react-native/ReactCommon/react/networking/React-networking.podspec +++ b/packages/react-native/ReactCommon/react/networking/React-networking.podspec @@ -48,4 +48,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end 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 3570820348a4..646855e74b80 100644 --- a/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec +++ b/packages/react-native/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec @@ -50,4 +50,6 @@ Pod::Spec.new do |s| if use_hermes() s.dependency 'hermes-engine' end + + mark_as_react_native_build(s) end 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 31c88d97abe9..ec18c311fe18 100644 --- a/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +++ b/packages/react-native/ReactCommon/react/performance/timeline/React-performancetimeline.podspec @@ -48,4 +48,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec b/packages/react-native/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec index 216fd443ad3c..e4cf09b0d814 100644 --- a/packages/react-native/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +++ b/packages/react-native/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec @@ -40,4 +40,5 @@ Pod::Spec.new do |s| resolve_use_frameworks(s, header_mappings_dir: "../../..", module_name: "React_rendererconsistency") + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec b/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec index c16a9a875b27..23c37bc980cc 100644 --- a/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec +++ b/packages/react-native/ReactCommon/react/renderer/css/React-renderercss.podspec @@ -44,4 +44,6 @@ Pod::Spec.new do |s| add_dependency(s, "React-debug") add_dependency(s, "React-utils") + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/renderer/debug/React-rendererdebug.podspec b/packages/react-native/ReactCommon/react/renderer/debug/React-rendererdebug.podspec index 41df93a4f64a..d53f4077d6c5 100644 --- a/packages/react-native/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +++ b/packages/react-native/ReactCommon/react/renderer/debug/React-rendererdebug.podspec @@ -45,4 +45,6 @@ Pod::Spec.new do |s| add_dependency(s, "React-debug") add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end 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 f6265ab54e63..a164d8ef3db1 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec +++ b/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec @@ -54,4 +54,6 @@ Pod::Spec.new do |s| depend_on_js_engine(s) add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec b/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec index 50862be68387..440aa113e61c 100644 --- a/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +++ b/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec @@ -53,4 +53,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec index 864bd1919ee2..339e7e6e031f 100644 --- a/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +++ b/packages/react-native/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec @@ -57,4 +57,6 @@ Pod::Spec.new do |s| depend_on_js_engine(s) add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec b/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec index 24b163f5e4d4..863168dc0fd2 100644 --- a/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec +++ b/packages/react-native/ReactCommon/react/runtime/React-RuntimeCore.podspec @@ -53,4 +53,6 @@ Pod::Spec.new do |s| s.dependency "React-jsinspector" add_dependency(s, "React-jsitooling", :framework_name => "JSITooling") + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/runtime/React-RuntimeHermes.podspec b/packages/react-native/ReactCommon/react/runtime/React-RuntimeHermes.podspec index ac7d4419db23..8a0cf34d7b33 100644 --- a/packages/react-native/ReactCommon/react/runtime/React-RuntimeHermes.podspec +++ b/packages/react-native/ReactCommon/react/runtime/React-RuntimeHermes.podspec @@ -50,4 +50,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec b/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec index 7c84db0bca95..947cd5c69d19 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec @@ -69,4 +69,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/timing/React-timing.podspec b/packages/react-native/ReactCommon/react/timing/React-timing.podspec index 246b27ee4f28..75f27c5e2411 100644 --- a/packages/react-native/ReactCommon/react/timing/React-timing.podspec +++ b/packages/react-native/ReactCommon/react/timing/React-timing.podspec @@ -42,4 +42,6 @@ Pod::Spec.new do |s| add_dependency(s, "React-debug") s.resource_bundles = {'React-timing_privacy' => 'PrivacyInfo.xcprivacy'} + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/react/utils/React-utils.podspec b/packages/react-native/ReactCommon/react/utils/React-utils.podspec index 1a939b49cb28..430fe08f0f37 100644 --- a/packages/react-native/ReactCommon/react/utils/React-utils.podspec +++ b/packages/react-native/ReactCommon/react/utils/React-utils.podspec @@ -54,4 +54,6 @@ Pod::Spec.new do |s| add_rncore_dependency(s) add_dependency(s, "React-debug") + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/reactperflogger/React-perflogger.podspec b/packages/react-native/ReactCommon/reactperflogger/React-perflogger.podspec index fb32c2a11eaa..53161afe73a8 100644 --- a/packages/react-native/ReactCommon/reactperflogger/React-perflogger.podspec +++ b/packages/react-native/ReactCommon/reactperflogger/React-perflogger.podspec @@ -39,4 +39,6 @@ Pod::Spec.new do |s| add_rn_third_party_dependencies(s) add_rncore_dependency(s) + + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec b/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec index 155735ca9d8a..6ad619fadd7d 100644 --- a/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +++ b/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec @@ -53,4 +53,5 @@ Pod::Spec.new do |s| add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"]) + mark_as_react_native_build(s) end diff --git a/packages/react-native/ReactCommon/yoga/Yoga.podspec b/packages/react-native/ReactCommon/yoga/Yoga.podspec index ade85279bfaf..fda642ddcff4 100644 --- a/packages/react-native/ReactCommon/yoga/Yoga.podspec +++ b/packages/react-native/ReactCommon/yoga/Yoga.podspec @@ -63,4 +63,6 @@ Pod::Spec.new do |spec| all_header_files = File.join('ReactCommon/yoga', all_header_files) if ENV['INSTALL_YOGA_WITHOUT_PATH_OPTION'] spec.private_header_files = Dir.glob(all_header_files).sort - Dir.glob(public_header_files).sort spec.preserve_paths = [all_header_files] + + mark_as_react_native_build(spec) end diff --git a/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb b/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb index ba95cfc3331f..fc1fa036be4b 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb @@ -165,6 +165,7 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths { :dependency_name => "React-rendererdebug" }, { :dependency_name => "React-jsi" }, { :dependency_name => "React-renderercss" }, + { :dependency_name => "React-cxxstableapi" }, { :dependency_name => "hermes-engine" }, { :dependency_name => "glog" }, { :dependency_name => "boost" }, @@ -216,6 +217,7 @@ def test_installModulesDependencies_whenNewArchDisabledAndSearchPathsAndCompiler { :dependency_name => "React-rendererdebug" }, { :dependency_name => "React-jsi" }, { :dependency_name => "React-renderercss" }, + { :dependency_name => "React-cxxstableapi" }, { :dependency_name => "hermes-engine" }, { :dependency_name => "glog" }, { :dependency_name => "boost" }, diff --git a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb index 844a4e941443..a5dd5c99df44 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb @@ -632,7 +632,7 @@ def test_updateSearchPaths_whenUseFrameworks_addsSearchPaths # Assert user_project_mock.build_configurations.each do |config| received_search_path = config.build_settings["HEADER_SEARCH_PATHS"] - expected_search_path = "$(inherited) ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-featureflags/React_featureflags.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-renderercss/React_renderercss.framework/Headers" + expected_search_path = "$(inherited) ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-featureflags/React_featureflags.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-renderercss/React_renderercss.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-cxxstableapi/React_cxxstableapi.framework/Headers" assert_equal(expected_search_path, received_search_path) end @@ -812,6 +812,48 @@ def test_creatHeaderSearchPathForFrameworks_whenMultiplePlatformsAndExtraPath_cr ], result) end + # ================================= # + # TEST - Add RN_BUILDING definition # + # ================================= # + def test_addRNBuildingDefinition_whenNoDefinitions_addsThem + spec = SpecMock.new + + ReactNativePodsUtils.add_rn_building_definition(spec) + + assert_equal({"GCC_PREPROCESSOR_DEFINITIONS" => "$(inherited) RN_BUILDING=1"}, spec.to_hash["pod_target_xcconfig"]) + end + + def test_addRNBuildingDefinition_whenOtherDefinitions_addsThemPreservingTheOthers + spec = SpecMock.new + spec.pod_target_xcconfig["GCC_PREPROCESSOR_DEFINITIONS"] = "$(inherited) SOME_FLAG=1" + spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"] = "c++20" + + ReactNativePodsUtils.add_rn_building_definition(spec) + + assert_equal({ + "GCC_PREPROCESSOR_DEFINITIONS" => "$(inherited) SOME_FLAG=1 RN_BUILDING=1", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++20" + }, spec.to_hash["pod_target_xcconfig"]) + end + + def test_addRNBuildingDefinition_whenDefinitionsAreAnArray_joinsThem + spec = SpecMock.new + spec.pod_target_xcconfig["GCC_PREPROCESSOR_DEFINITIONS"] = ["$(inherited)", "SOME_FLAG=1"] + + ReactNativePodsUtils.add_rn_building_definition(spec) + + assert_equal({"GCC_PREPROCESSOR_DEFINITIONS" => "$(inherited) SOME_FLAG=1 RN_BUILDING=1"}, spec.to_hash["pod_target_xcconfig"]) + end + + def test_addRNBuildingDefinition_whenCalledTwice_addsItOnce + spec = SpecMock.new + + ReactNativePodsUtils.add_rn_building_definition(spec) + ReactNativePodsUtils.add_rn_building_definition(spec) + + assert_equal({"GCC_PREPROCESSOR_DEFINITIONS" => "$(inherited) RN_BUILDING=1"}, spec.to_hash["pod_target_xcconfig"]) + end + # ===================== # # TEST - Add Dependency # # ===================== # diff --git a/packages/react-native/scripts/cocoapods/new_architecture.rb b/packages/react-native/scripts/cocoapods/new_architecture.rb index e4353427a977..0052196a2065 100644 --- a/packages/react-native/scripts/cocoapods/new_architecture.rb +++ b/packages/react-native/scripts/cocoapods/new_architecture.rb @@ -96,6 +96,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version = He .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-ImageManager", "React_ImageManager", [])) .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-rendererdebug", "React_rendererdebug", [])) .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-renderercss", "React_renderercss", [])) + .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-cxxstableapi", "React_cxxstableapi", [])) .each { |search_path| header_search_paths << "\"#{search_path}\"" } @@ -132,6 +133,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version = He spec.dependency "React-rendererdebug" spec.dependency 'React-jsi' spec.dependency 'React-renderercss' + spec.dependency 'React-cxxstableapi' depend_on_js_engine(spec) add_rn_third_party_dependencies(spec) diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index 60dcde24f155..2293a665d2e0 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -97,6 +97,27 @@ def self.set_gcc_preprocessor_definition_for_debugger(installer) self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "REACT_NATIVE_DEBUGGER_ENABLED_DEVONLY=1", "React-networking", :debug) end + # The react/cxxstableapi guards turn a direct include of a fine-grained React Native + # header into an error for consumers that opt into RN_STRICT_API. React Native's own + # sources are exempt via RN_BUILDING, so every first-party pod defines it. Third-party + # pods must never get it, or they would silently opt out of the guards. + # + # This merges into pod_target_xcconfig as it stands when called, so call it after the + # spec has set its own xcconfig — in practice, last in the spec block. + def self.add_rn_building_definition(spec) + current_config = spec.to_hash["pod_target_xcconfig"] || {} + definitions = current_config["GCC_PREPROCESSOR_DEFINITIONS"] || "$(inherited)" + + if definitions.is_a?(Array) + definitions = definitions.join(" ") + end + + return if definitions.include?("RN_BUILDING=1") + + current_config["GCC_PREPROCESSOR_DEFINITIONS"] = "#{definitions.strip()} RN_BUILDING=1".strip() + spec.pod_target_xcconfig = current_config + end + def self.turn_off_resource_bundle_react_core(installer) # this is needed for Xcode 14, see more details here https://github.com/facebook/react-native/issues/34673 # we should be able to remove this once CocoaPods catches up to it, see more details here https://github.com/CocoaPods/CocoaPods/issues/11402 @@ -362,6 +383,7 @@ def self.update_search_paths(installer) .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-graphics", "React_graphics", ["react/renderer/graphics/platform/ios"])) .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-featureflags", "React_featureflags", [])) .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-renderercss", "React_renderercss", [])) + .concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-cxxstableapi", "React_cxxstableapi", [])) .each{ |search_path| header_search_paths = self.add_search_path_if_not_included(header_search_paths, search_path) } diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb index 3b6d3142b38e..50cd3684c2e4 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -308,6 +308,20 @@ def resolve_use_frameworks(spec, header_mappings_dir: nil, module_name: nil) ReactNativePodsUtils.resolve_use_frameworks(spec, :header_mappings_dir => header_mappings_dir, :module_name => module_name) end +# Mark a spec as part of React Native's own build by defining RN_BUILDING for it. The +# react/cxxstableapi guards use it to stay inert for React Native's internal sources, +# which keep including the fine-grained headers the guards fence off from consumers. +# Only first-party React Native pods may call this. +# +# Call it last in the spec block: it merges into GCC_PREPROCESSOR_DEFINITIONS as +# pod_target_xcconfig stands at call time, so a later assignment would drop it. +# +# Parameters: +# - spec: the spec to modify +def mark_as_react_native_build(spec) + ReactNativePodsUtils.add_rn_building_definition(spec) +end + # Add a dependency to a spec, making sure that the HEADER_SERACH_PATHS are set properly. # This function automate the requirement to specify the HEADER_SEARCH_PATHS which was error prone # and hard to pull out properly to begin with.