From ce80695691d56281d735647816a275431140f256 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Thu, 29 Sep 2022 22:25:24 -0700 Subject: [PATCH] Fixup Enum Generator Summary: https://github.com/facebook/yoga/pull/1116 adds a new enum. The enum generator is out of date with copyright header, and some codemods, but it also looks like there were manual changes, types added, etc since generation. I fixed up the script to incorporate generating the changes folks made manually, and also added an enum that was previously only added manually to the C ABI. Changelog: [General][Fixed] - Fixup Yoga Enum Generator Reviewed By: yungsters Differential Revision: D39922252 fbshipit-source-id: b678fa9a43a896873d8c434745bdaf3f16fd991f --- lib/yoga/src/main/cpp/yoga/YGEnums.cpp | 2 + lib/yoga/src/main/cpp/yoga/YGEnums.h | 76 ++++++------------- lib/yoga/src/main/cpp/yoga/YGMacros.h | 43 +++++++++++ .../java/com/facebook/yoga/YogaAlign.java | 2 + .../java/com/facebook/yoga/YogaDimension.java | 2 + .../java/com/facebook/yoga/YogaDirection.java | 2 + .../java/com/facebook/yoga/YogaDisplay.java | 2 + .../main/java/com/facebook/yoga/YogaEdge.java | 2 + .../yoga/YogaExperimentalFeature.java | 2 + .../com/facebook/yoga/YogaFlexDirection.java | 2 + .../java/com/facebook/yoga/YogaJustify.java | 5 +- .../java/com/facebook/yoga/YogaLogLevel.java | 2 + .../com/facebook/yoga/YogaMeasureMode.java | 2 + .../java/com/facebook/yoga/YogaNodeType.java | 2 + .../java/com/facebook/yoga/YogaOverflow.java | 2 + .../com/facebook/yoga/YogaPositionType.java | 2 + .../com/facebook/yoga/YogaPrintOptions.java | 2 + .../main/java/com/facebook/yoga/YogaUnit.java | 2 + .../main/java/com/facebook/yoga/YogaWrap.java | 2 + 19 files changed, 102 insertions(+), 54 deletions(-) diff --git a/lib/yoga/src/main/cpp/yoga/YGEnums.cpp b/lib/yoga/src/main/cpp/yoga/YGEnums.cpp index b97342d8c27..b67b0dac6dd 100644 --- a/lib/yoga/src/main/cpp/yoga/YGEnums.cpp +++ b/lib/yoga/src/main/cpp/yoga/YGEnums.cpp @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + #include "YGEnums.h" const char* YGAlignToString(const YGAlign value) { diff --git a/lib/yoga/src/main/cpp/yoga/YGEnums.h b/lib/yoga/src/main/cpp/yoga/YGEnums.h index c14daaa1a67..9d6abfb1075 100644 --- a/lib/yoga/src/main/cpp/yoga/YGEnums.h +++ b/lib/yoga/src/main/cpp/yoga/YGEnums.h @@ -5,53 +5,13 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + #pragma once +// clang-format: off #include "YGMacros.h" -#ifdef __cplusplus -namespace facebook { -namespace yoga { -namespace enums { - -template -constexpr int count(); // can't use `= delete` due to a defect in clang < 3.9 - -namespace detail { -template -constexpr int n() { - return sizeof...(xs); -} -} // namespace detail - -} // namespace enums -} // namespace yoga -} // namespace facebook -#endif - -#define YG_ENUM_DECL(NAME, ...) \ - typedef YG_ENUM_BEGIN(NAME){__VA_ARGS__} YG_ENUM_END(NAME); \ - WIN_EXPORT const char* NAME##ToString(NAME); - -#ifdef __cplusplus -#define YG_ENUM_SEQ_DECL(NAME, ...) \ - YG_ENUM_DECL(NAME, __VA_ARGS__) \ - YG_EXTERN_C_END \ - namespace facebook { \ - namespace yoga { \ - namespace enums { \ - template <> \ - constexpr int count() { \ - return detail::n<__VA_ARGS__>(); \ - } \ - } \ - } \ - } \ - YG_EXTERN_C_BEGIN -#else -#define YG_ENUM_SEQ_DECL YG_ENUM_DECL -#endif - YG_EXTERN_C_BEGIN YG_ENUM_SEQ_DECL( @@ -63,9 +23,12 @@ YG_ENUM_SEQ_DECL( YGAlignStretch, YGAlignBaseline, YGAlignSpaceBetween, - YGAlignSpaceAround); + YGAlignSpaceAround) -YG_ENUM_SEQ_DECL(YGDimension, YGDimensionWidth, YGDimensionHeight) +YG_ENUM_SEQ_DECL( + YGDimension, + YGDimensionWidth, + YGDimensionHeight) YG_ENUM_SEQ_DECL( YGDirection, @@ -73,7 +36,10 @@ YG_ENUM_SEQ_DECL( YGDirectionLTR, YGDirectionRTL) -YG_ENUM_SEQ_DECL(YGDisplay, YGDisplayFlex, YGDisplayNone) +YG_ENUM_SEQ_DECL( + YGDisplay, + YGDisplayFlex, + YGDisplayNone) YG_ENUM_SEQ_DECL( YGEdge, @@ -87,7 +53,9 @@ YG_ENUM_SEQ_DECL( YGEdgeVertical, YGEdgeAll) -YG_ENUM_SEQ_DECL(YGExperimentalFeature, YGExperimentalFeatureWebFlexBasis) +YG_ENUM_SEQ_DECL( + YGExperimentalFeature, + YGExperimentalFeatureWebFlexBasis) YG_ENUM_SEQ_DECL( YGFlexDirection, @@ -120,7 +88,10 @@ YG_ENUM_SEQ_DECL( YGMeasureModeExactly, YGMeasureModeAtMost) -YG_ENUM_SEQ_DECL(YGNodeType, YGNodeTypeDefault, YGNodeTypeText) +YG_ENUM_SEQ_DECL( + YGNodeType, + YGNodeTypeDefault, + YGNodeTypeText) YG_ENUM_SEQ_DECL( YGOverflow, @@ -147,9 +118,10 @@ YG_ENUM_SEQ_DECL( YGUnitPercent, YGUnitAuto) -YG_ENUM_SEQ_DECL(YGWrap, YGWrapNoWrap, YGWrapWrap, YGWrapWrapReverse) +YG_ENUM_SEQ_DECL( + YGWrap, + YGWrapNoWrap, + YGWrapWrap, + YGWrapWrapReverse) YG_EXTERN_C_END - -#undef YG_ENUM_DECL -#undef YG_ENUM_SEQ_DECL diff --git a/lib/yoga/src/main/cpp/yoga/YGMacros.h b/lib/yoga/src/main/cpp/yoga/YGMacros.h index 9211c87b317..ee143c29ffa 100644 --- a/lib/yoga/src/main/cpp/yoga/YGMacros.h +++ b/lib/yoga/src/main/cpp/yoga/YGMacros.h @@ -40,6 +40,49 @@ #define YG_ENUM_END(name) name #endif +#ifdef __cplusplus +namespace facebook { +namespace yoga { +namespace enums { + +template +constexpr int count(); // can't use `= delete` due to a defect in clang < 3.9 + +namespace detail { +template +constexpr int n() { + return sizeof...(xs); +} +} // namespace detail + +} // namespace enums +} // namespace yoga +} // namespace facebook +#endif + +#define YG_ENUM_DECL(NAME, ...) \ + typedef YG_ENUM_BEGIN(NAME){__VA_ARGS__} YG_ENUM_END(NAME); \ + WIN_EXPORT const char* NAME##ToString(NAME); + +#ifdef __cplusplus +#define YG_ENUM_SEQ_DECL(NAME, ...) \ + YG_ENUM_DECL(NAME, __VA_ARGS__) \ + YG_EXTERN_C_END \ + namespace facebook { \ + namespace yoga { \ + namespace enums { \ + template <> \ + constexpr int count() { \ + return detail::n<__VA_ARGS__>(); \ + } \ + } \ + } \ + } \ + YG_EXTERN_C_BEGIN +#else +#define YG_ENUM_SEQ_DECL YG_ENUM_DECL +#endif + #ifdef __GNUC__ #define YG_DEPRECATED __attribute__((deprecated)) #elif defined(_MSC_VER) diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaAlign.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaAlign.java index 5411e39f2ef..a60d77e0f29 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaAlign.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaAlign.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaAlign { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaDimension.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaDimension.java index eeecd85ed47..a949ddc3ce1 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaDimension.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaDimension.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaDimension { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaDirection.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaDirection.java index 344c0f8079e..7cedba3a05e 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaDirection.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaDirection.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaDirection { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaDisplay.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaDisplay.java index aa94b0536a9..d4c4685fcb2 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaDisplay.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaDisplay.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaDisplay { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaEdge.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaEdge.java index 929b3315b33..6b915348230 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaEdge.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaEdge.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaEdge { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java index f54c7b6e1cd..3fabbb91729 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaExperimentalFeature { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaFlexDirection.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaFlexDirection.java index c314c0cf03c..719888a1864 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaFlexDirection.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaFlexDirection.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaFlexDirection { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaJustify.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaJustify.java index e19213f7e8b..4be1ed71d39 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaJustify.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaJustify.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaJustify { @@ -32,8 +34,7 @@ public static YogaJustify fromInt(int value) { case 2: return FLEX_END; case 3: return SPACE_BETWEEN; case 4: return SPACE_AROUND; - case 5: - return SPACE_EVENLY; + case 5: return SPACE_EVENLY; default: throw new IllegalArgumentException("Unknown enum value: " + value); } } diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaLogLevel.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaLogLevel.java index f105145aea4..85076706c37 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaLogLevel.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaLogLevel.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; import com.facebook.proguard.annotations.DoNotStrip; diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaMeasureMode.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaMeasureMode.java index 1750d2a1f43..0c77c23897e 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaMeasureMode.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaMeasureMode.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaMeasureMode { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaNodeType.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaNodeType.java index 1d90eec34c5..b8828014cf8 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaNodeType.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaNodeType.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaNodeType { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaOverflow.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaOverflow.java index 321d4e00a65..8e59966b9a9 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaOverflow.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaOverflow.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaOverflow { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaPositionType.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaPositionType.java index 6663a0ee66d..cf735fbe073 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaPositionType.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaPositionType.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaPositionType { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaPrintOptions.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaPrintOptions.java index 8c1a34d9559..54eacc51d3a 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaPrintOptions.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaPrintOptions.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaPrintOptions { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaUnit.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaUnit.java index e2ab8bffb72..3614ec1059d 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaUnit.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaUnit.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaUnit { diff --git a/lib/yoga/src/main/java/com/facebook/yoga/YogaWrap.java b/lib/yoga/src/main/java/com/facebook/yoga/YogaWrap.java index e7e6014328c..cf87e9ef5ec 100644 --- a/lib/yoga/src/main/java/com/facebook/yoga/YogaWrap.java +++ b/lib/yoga/src/main/java/com/facebook/yoga/YogaWrap.java @@ -5,6 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +// @generated by enums.py + package com.facebook.yoga; public enum YogaWrap {