Skip to content

Use umbrellas instead of direct includes in renderer core module - #58654

Open
j-piasecki wants to merge 4 commits into
react:mainfrom
j-piasecki:export-D121395742
Open

j-piasecki wants to merge 4 commits into
react:mainfrom
j-piasecki:export-D121395742

Conversation

@j-piasecki

Copy link
Copy Markdown
Contributor

Summary:
Changelog: [Internal]

Update the react/renderer/core module to use the React/Debug.h, React/FeatureFlags.h, React/Timing.h, React/Utils.h and React/MapBuffer.h umbrella includes instead of direct ones.

react/renderer/graphics and react/renderer/debug keep direct includes. Their umbrellas re-export rounding.h and debugStringConvertibleUtils.h, which are unsafe to pull into every translation unit that sees a core header: the former makes unqualified round() ambiguous in ObjC++, the latter resolves toString(T) before later overloads are declared.

Differential Revision: D121395742

Summary:

Each module ships a small header that acts as its entry point. Those were
being packaged into the React framework, but the code that includes them
lives in the shared headers bundle the framework is built on top of. The two
ended up pointing at each other and the iOS build failed.

Ship the entry-point headers with the shared headers instead. They still
resolve the same way for anyone including them, and no other header moves.

Changelog: [Internal]

Differential Revision: D121187558
Summary:

Changelog: [Internal]

Update the timing module to use `React/Debug.h` umbrella include instead of a direct one.

Reviewed By: cipolleschi

Differential Revision: D120137164
Summary:
Changelog: [Internal]

Add a `React/RawValue.h` umbrella for the `rawValue` target, the slice of `react/renderer/core` that exists so core and `react/renderer/graphics` do not form a dependency cycle. `React/RendererCore.h` re-exports it instead of listing the two headers directly.

Differential Revision: D121388426
Summary:
Changelog: [Internal]

Update the `react/renderer/core` module to use the `React/Debug.h`, `React/FeatureFlags.h`, `React/Timing.h`, `React/Utils.h` and `React/MapBuffer.h` umbrella includes instead of direct ones.

`react/renderer/graphics` and `react/renderer/debug` keep direct includes. Their umbrellas re-export `rounding.h` and `debugStringConvertibleUtils.h`, which are unsafe to pull into every translation unit that sees a core header: the former makes unqualified `round()` ambiguous in ObjC++, the latter resolves `toString(T)` before later overloads are declared.

Differential Revision: D121395742
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 23, 2026
@facebook-github-tools facebook-github-tools Bot added p: Software Mansion Partner: Software Mansion Partner p: Facebook Partner: Facebook labels Sep 23, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook p: Software Mansion Partner: Software Mansion Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant