From 39b61a07d3be7e2b560327246412ee1d4dbb0284 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Mon, 24 Apr 2023 13:27:55 -0700 Subject: [PATCH] Remove private headers exposed by podspecs (#1252) Summary: X-link: https://github.com/facebook/yoga/pull/1252 X-link: https://github.com/facebook/react-native/pull/36993 Fabric relies on the private C++ internals of Yoga. This creates a conundrum in the open source build due to how header creation in Cocoapods works. 1. The default mechanism of specifying public headers needs to include the private headers for them to be made usable by fabric (by default) 2. Cocoapods will roll up all of the public headers when importing a module https://github.com/facebook/react-native/pull/33381 fixed the Fabric Cocoapods build which ran into this. React Native relies on FlipperKit which relies on YogaKit, which in turn finally imports the Yoga podspec. Because YogaKit may use Swift, we can only expose the public Yoga C ABI. The first solution in that PR was to allow RN to access Yoga private headers, but this was changed to instead make all Yoga headers public, and to add ifdefs to all of them to no-op when included outside of a C++ environment. Talking to Kudo, we should be able to change back to the earlier approach in the PR, to instead expose the private headers to only RN. This lets us avoid exposing headers that we ideally wouldn't be, and lets us avoid the messy ifdefs in every Yoga header. Changelog: [Internal] Differential Revision: D45139075 fbshipit-source-id: 8f1878f602b732cdd928a1311a6bedf85afe12ca --- lib/yoga/src/main/cpp/yoga/BitUtils.h | 4 ---- lib/yoga/src/main/cpp/yoga/CompactValue.h | 4 ---- lib/yoga/src/main/cpp/yoga/Utils.h | 4 ---- lib/yoga/src/main/cpp/yoga/YGConfig.h | 4 ---- lib/yoga/src/main/cpp/yoga/YGFloatOptional.h | 4 ---- lib/yoga/src/main/cpp/yoga/YGLayout.h | 4 ---- lib/yoga/src/main/cpp/yoga/YGNode.h | 4 ---- lib/yoga/src/main/cpp/yoga/YGNodePrint.h | 4 ---- lib/yoga/src/main/cpp/yoga/YGStyle.h | 4 ---- lib/yoga/src/main/cpp/yoga/Yoga-internal.h | 4 ---- lib/yoga/src/main/cpp/yoga/log.h | 4 ---- 11 files changed, 44 deletions(-) diff --git a/lib/yoga/src/main/cpp/yoga/BitUtils.h b/lib/yoga/src/main/cpp/yoga/BitUtils.h index a60ea7609ca..b17751ad331 100644 --- a/lib/yoga/src/main/cpp/yoga/BitUtils.h +++ b/lib/yoga/src/main/cpp/yoga/BitUtils.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #include #include #include "YGEnums.h" @@ -67,5 +65,3 @@ inline void setBooleanData(uint8_t& flags, size_t index, bool value) { } // namespace detail } // namespace yoga } // namespace facebook - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/CompactValue.h b/lib/yoga/src/main/cpp/yoga/CompactValue.h index e489fbb614d..26859330f3b 100644 --- a/lib/yoga/src/main/cpp/yoga/CompactValue.h +++ b/lib/yoga/src/main/cpp/yoga/CompactValue.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #if defined(__has_include) && __has_include() // needed to be able to evaluate defined(__cpp_lib_bit_cast) #include @@ -212,5 +210,3 @@ constexpr bool operator!=(CompactValue a, CompactValue b) noexcept { } // namespace detail } // namespace yoga } // namespace facebook - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/Utils.h b/lib/yoga/src/main/cpp/yoga/Utils.h index 82867a5774a..376c4fb55c7 100644 --- a/lib/yoga/src/main/cpp/yoga/Utils.h +++ b/lib/yoga/src/main/cpp/yoga/Utils.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #include "YGNode.h" #include "Yoga-internal.h" #include "CompactValue.h" @@ -146,5 +144,3 @@ inline YGFloatOptional YGResolveValueMargin( const float ownerSize) { return value.isAuto() ? YGFloatOptional{0} : YGResolveValue(value, ownerSize); } - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/YGConfig.h b/lib/yoga/src/main/cpp/yoga/YGConfig.h index e15cc122533..77ce16fb2e3 100644 --- a/lib/yoga/src/main/cpp/yoga/YGConfig.h +++ b/lib/yoga/src/main/cpp/yoga/YGConfig.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #include "Yoga-internal.h" #include "Yoga.h" @@ -77,5 +75,3 @@ struct YOGA_EXPORT YGConfig { setCloneNodeCallback(YGCloneNodeFunc{nullptr}); } }; - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/YGFloatOptional.h b/lib/yoga/src/main/cpp/yoga/YGFloatOptional.h index 6af7bbafbfb..4aa9e76e299 100644 --- a/lib/yoga/src/main/cpp/yoga/YGFloatOptional.h +++ b/lib/yoga/src/main/cpp/yoga/YGFloatOptional.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #include #include #include "Yoga-internal.h" @@ -70,5 +68,3 @@ inline bool operator>=(YGFloatOptional lhs, YGFloatOptional rhs) { inline bool operator<=(YGFloatOptional lhs, YGFloatOptional rhs) { return lhs < rhs || lhs == rhs; } - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/YGLayout.h b/lib/yoga/src/main/cpp/yoga/YGLayout.h index e95efbcc244..166eabb64d9 100644 --- a/lib/yoga/src/main/cpp/yoga/YGLayout.h +++ b/lib/yoga/src/main/cpp/yoga/YGLayout.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #include "BitUtils.h" #include "YGFloatOptional.h" #include "Yoga-internal.h" @@ -63,5 +61,3 @@ struct YGLayout { bool operator==(YGLayout layout) const; bool operator!=(YGLayout layout) const { return !(*this == layout); } }; - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/YGNode.h b/lib/yoga/src/main/cpp/yoga/YGNode.h index 098c1b5ea22..8ca6c35988d 100644 --- a/lib/yoga/src/main/cpp/yoga/YGNode.h +++ b/lib/yoga/src/main/cpp/yoga/YGNode.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #include #include #include "CompactValue.h" @@ -344,5 +342,3 @@ struct YOGA_EXPORT YGNode { bool isNodeFlexible(); void reset(); }; - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/YGNodePrint.h b/lib/yoga/src/main/cpp/yoga/YGNodePrint.h index 83b3f860e4b..f06d457c4dd 100644 --- a/lib/yoga/src/main/cpp/yoga/YGNodePrint.h +++ b/lib/yoga/src/main/cpp/yoga/YGNodePrint.h @@ -9,8 +9,6 @@ #pragma once -#ifdef __cplusplus - #include #include "Yoga.h" @@ -28,5 +26,3 @@ void YGNodeToString( } // namespace facebook #endif - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/YGStyle.h b/lib/yoga/src/main/cpp/yoga/YGStyle.h index 858b7cd1b4a..20ce4e05625 100644 --- a/lib/yoga/src/main/cpp/yoga/YGStyle.h +++ b/lib/yoga/src/main/cpp/yoga/YGStyle.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #include #include #include @@ -237,5 +235,3 @@ YOGA_EXPORT bool operator==(const YGStyle& lhs, const YGStyle& rhs); YOGA_EXPORT inline bool operator!=(const YGStyle& lhs, const YGStyle& rhs) { return !(lhs == rhs); } - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/Yoga-internal.h b/lib/yoga/src/main/cpp/yoga/Yoga-internal.h index 9444bb5d1db..e6f370d6bfa 100644 --- a/lib/yoga/src/main/cpp/yoga/Yoga-internal.h +++ b/lib/yoga/src/main/cpp/yoga/Yoga-internal.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #include #include #include @@ -154,5 +152,3 @@ static const float kDefaultFlexShrink = 0.0f; static const float kWebDefaultFlexShrink = 1.0f; extern bool YGFloatsEqual(const float a, const float b); - -#endif diff --git a/lib/yoga/src/main/cpp/yoga/log.h b/lib/yoga/src/main/cpp/yoga/log.h index b9bfea4f390..1d270e82e40 100644 --- a/lib/yoga/src/main/cpp/yoga/log.h +++ b/lib/yoga/src/main/cpp/yoga/log.h @@ -7,8 +7,6 @@ #pragma once -#ifdef __cplusplus - #include "YGEnums.h" struct YGNode; @@ -38,5 +36,3 @@ struct Log { } // namespace detail } // namespace yoga } // namespace facebook - -#endif