From 69e9683c59fa91c454cb15aa252f7bac6f2e49b9 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Thu, 3 Sep 2026 00:57:37 -0700 Subject: [PATCH] Cover `react/renderer/animated` with guards (#58269) Summary: Pull Request resolved: https://github.com/react/react-native/pull/58269 Classifies `react/renderer/animated:animated` as a "for frameworks" target under the C++ stable API three-tier visibility model. Adds `#include ` to the module's 30 non-test headers, and wires the guard dependency into BUCK and CMake. No CocoaPods change is needed: the module ships as a subspec of `React-Fabric`, whose parent spec already declares `React-cxxstableapi` and calls `mark_as_react_native_build`. Consumers that opt into `RN_STRICT_API` now get a warning if they include these headers directly, which they can acknowledge with `RN_ALLOW_FRAMEWORKS`; without that flag the guards are inert, so no existing build changes behaviour. Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D118256232 --- .../ReactCommon/react/renderer/animated/AnimatedModule.h | 2 ++ .../ReactCommon/react/renderer/animated/CMakeLists.txt | 1 + .../ReactCommon/react/renderer/animated/EventEmitterListener.h | 2 ++ .../react/renderer/animated/MergedValueDispatcher.h | 2 ++ .../react/renderer/animated/NativeAnimatedNodesManager.h | 2 ++ .../renderer/animated/NativeAnimatedNodesManagerProvider.h | 2 ++ .../react/renderer/animated/drivers/AnimationDriver.h | 2 ++ .../react/renderer/animated/drivers/AnimationDriverUtils.h | 2 ++ .../react/renderer/animated/drivers/DecayAnimationDriver.h | 2 ++ .../react/renderer/animated/drivers/FrameAnimationDriver.h | 2 ++ .../react/renderer/animated/drivers/SpringAnimationDriver.h | 2 ++ .../renderer/animated/event_drivers/EventAnimationDriver.h | 2 ++ .../animated/internal/AnimatedMountingOverrideDelegate.h | 2 ++ .../react/renderer/animated/internal/NativeAnimatedAllowlist.h | 2 ++ .../ReactCommon/react/renderer/animated/internal/primitives.h | 3 +++ .../react/renderer/animated/nodes/AdditionAnimatedNode.h | 2 ++ .../ReactCommon/react/renderer/animated/nodes/AnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/ColorAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/DiffClampAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/DivisionAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/InterpolationAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/ModulusAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/MultiplicationAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/ObjectAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/PropsAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/RoundAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/StyleAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/SubtractionAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/TrackingAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/TransformAnimatedNode.h | 2 ++ .../react/renderer/animated/nodes/ValueAnimatedNode.h | 2 ++ 31 files changed, 62 insertions(+) diff --git a/packages/react-native/ReactCommon/react/renderer/animated/AnimatedModule.h b/packages/react-native/ReactCommon/react/renderer/animated/AnimatedModule.h index 64077e82d4e1..75be37951fe4 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/AnimatedModule.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/AnimatedModule.h @@ -7,6 +7,8 @@ #pragma once +#include + #if __has_include("FBReactNativeSpecJSI.h") // CocoaPod headers on Apple #include "FBReactNativeSpecJSI.h" #else diff --git a/packages/react-native/ReactCommon/react/renderer/animated/CMakeLists.txt b/packages/react-native/ReactCommon/react/renderer/animated/CMakeLists.txt index cb226be7ac17..e95144374574 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/CMakeLists.txt +++ b/packages/react-native/ReactCommon/react/renderer/animated/CMakeLists.txt @@ -20,6 +20,7 @@ target_include_directories(react_renderer_animated PUBLIC ${REACT_COMMON_DIR}) target_link_libraries(react_renderer_animated react_codegen_rncore + react_cxxstableapi react_debug react_renderer_core react_renderer_graphics diff --git a/packages/react-native/ReactCommon/react/renderer/animated/EventEmitterListener.h b/packages/react-native/ReactCommon/react/renderer/animated/EventEmitterListener.h index c2f783fe2e4c..79516f278335 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/EventEmitterListener.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/EventEmitterListener.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/animated/MergedValueDispatcher.h b/packages/react-native/ReactCommon/react/renderer/animated/MergedValueDispatcher.h index 8926e69c1619..a2fe80c59fae 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/MergedValueDispatcher.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/MergedValueDispatcher.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h b/packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h index 28933e0f39e4..cf60696339eb 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h @@ -7,6 +7,8 @@ #pragma once +#include + #if __has_include("FBReactNativeSpecJSI.h") // CocoaPod headers on Apple #include "FBReactNativeSpecJSI.h" #else diff --git a/packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h b/packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h index 9b1164d3278f..f62c6136de34 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include "NativeAnimatedNodesManager.h" diff --git a/packages/react-native/ReactCommon/react/renderer/animated/drivers/AnimationDriver.h b/packages/react-native/ReactCommon/react/renderer/animated/drivers/AnimationDriver.h index 528ac782b70e..faae15432990 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/drivers/AnimationDriver.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/drivers/AnimationDriver.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/drivers/AnimationDriverUtils.h b/packages/react-native/ReactCommon/react/renderer/animated/drivers/AnimationDriverUtils.h index 4fb5b97bd66b..c96f1813820e 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/drivers/AnimationDriverUtils.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/drivers/AnimationDriverUtils.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/drivers/DecayAnimationDriver.h b/packages/react-native/ReactCommon/react/renderer/animated/drivers/DecayAnimationDriver.h index 8991b22664e6..c3340403a50d 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/drivers/DecayAnimationDriver.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/drivers/DecayAnimationDriver.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.h b/packages/react-native/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.h index 6efd986dd666..e66983365078 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/drivers/SpringAnimationDriver.h b/packages/react-native/ReactCommon/react/renderer/animated/drivers/SpringAnimationDriver.h index ce62c9c5fb03..bcd59857747c 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/drivers/SpringAnimationDriver.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/drivers/SpringAnimationDriver.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h b/packages/react-native/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h index 79cb51a1fb06..a9cda55060c7 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/event_drivers/EventAnimationDriver.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h b/packages/react-native/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h index c32c3890583a..c335858dbbdb 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h b/packages/react-native/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h index 3fc0649bd41a..f1b65c0e1a30 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/internal/NativeAnimatedAllowlist.h @@ -7,6 +7,8 @@ #pragma once +#include + #include #include diff --git a/packages/react-native/ReactCommon/react/renderer/animated/internal/primitives.h b/packages/react-native/ReactCommon/react/renderer/animated/internal/primitives.h index 1be452a2199a..c96237d4c451 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/internal/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/internal/primitives.h @@ -6,6 +6,9 @@ */ #pragma once + +#include + #include namespace facebook::react::animated { diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/AdditionAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/AdditionAnimatedNode.h index 5167c1c8372e..6d90858aec28 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/AdditionAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/AdditionAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/AnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/AnimatedNode.h index fc7e3842f535..eee02a7d0668 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/AnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/AnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.h index eb04ad931b28..c8062a949eeb 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/DiffClampAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/DiffClampAnimatedNode.h index 3be413383a33..3fb464a3e624 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/DiffClampAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/DiffClampAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/DivisionAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/DivisionAnimatedNode.h index 9227738db4c5..7964ae18b87b 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/DivisionAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/DivisionAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h index a6b29a6fd745..2b8bd253f970 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/ModulusAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/ModulusAnimatedNode.h index 9d0a30c9b22e..eb05f6188692 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/ModulusAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/ModulusAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/MultiplicationAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/MultiplicationAnimatedNode.h index e402b3069eb0..d8bb98df09d3 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/MultiplicationAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/MultiplicationAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/ObjectAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/ObjectAnimatedNode.h index eaaceaf10645..4d506b80a0fd 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/ObjectAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/ObjectAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h index f3bf6cd6b4f4..235d0a9ddc02 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.h index dc5a03b03dd1..40e8e78a9a6b 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/StyleAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/StyleAnimatedNode.h index 5e8031e0556d..5aaf187c987d 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/StyleAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/StyleAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/SubtractionAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/SubtractionAnimatedNode.h index 04e418b88f46..f60601067d26 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/SubtractionAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/SubtractionAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/TrackingAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/TrackingAnimatedNode.h index d147ced26daf..d7850851dfe6 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/TrackingAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/TrackingAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/TransformAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/TransformAnimatedNode.h index 7cc6d1537ab6..b6a11144e8af 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/TransformAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/TransformAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */ diff --git a/packages/react-native/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.h b/packages/react-native/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.h index e97a2ea5d260..72f5f44222e8 100644 --- a/packages/react-native/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.h +++ b/packages/react-native/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.h @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#include + /* * Adapted from react-native-windows under the MIT license. */