From 511a129a7e97ac246fecd57efa24e7138c6aa5d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20W=C3=B6hrl?= Date: Fri, 3 Feb 2017 04:21:50 -0800 Subject: [PATCH] Generate enums in sorted order Summary: This PR forces the order of the generated enums in alphabetically order. This is needed to have a predictable order of the enums across different python versions. Which reduces the pain for merging multiple enum additions. Closes https://github.com/facebook/yoga/pull/370 Reviewed By: gkassabli Differential Revision: D4501140 Pulled By: emilsjolander fbshipit-source-id: 66c0ed9e4ea7a5990578b53b0a7e400c13dd53a9 --- enums.py | 8 +- javascript/sources/YGEnums.js | 74 +++++++-------- yoga/YGEnums.h | 165 +++++++++++++++++++--------------- 3 files changed, 134 insertions(+), 113 deletions(-) diff --git a/enums.py b/enums.py index 47a74551..6ac522de 100644 --- a/enums.py +++ b/enums.py @@ -125,7 +125,7 @@ with open(root + '/yoga/YGEnums.h', 'w') as f: f.write('#pragma once\n\n') f.write('#include "YGMacros.h"\n\n') f.write('YG_EXTERN_C_BEGIN\n\n') - for name, values in ENUMS.items(): + for name, values in sorted(ENUMS.items()): f.write('#define YG%sCount %s\n' % (name, len(values))) f.write('typedef YG_ENUM_BEGIN(YG%s) {\n' % name) for value in values: @@ -138,7 +138,7 @@ with open(root + '/yoga/YGEnums.h', 'w') as f: f.write('YG_EXTERN_C_END\n') # write out java files -for name, values in ENUMS.items(): +for name, values in sorted(ENUMS.items()): with open(root + '/java/com/facebook/yoga/Yoga%s.java' % name, 'w') as f: f.write(LICENSE) f.write('package com.facebook.yoga;\n\n') @@ -181,7 +181,7 @@ for name, values in ENUMS.items(): f.write('}\n') # write out csharp files -for name, values in ENUMS.items(): +for name, values in sorted(ENUMS.items()): with open(root + '/csharp/Facebook.Yoga/Yoga%s.cs' % name, 'w') as f: f.write(LICENSE) f.write('namespace Facebook.Yoga\n{\n') @@ -198,7 +198,7 @@ for name, values in ENUMS.items(): with open(root + '/javascript/sources/YGEnums.js', 'w') as f: f.write(LICENSE) f.write('module.exports = {\n\n') - for name, values in ENUMS.items(): + for name, values in sorted(ENUMS.items()): f.write(' %s_COUNT: %s,\n' % (to_java_upper(name), len(values))) base = 0 for value in values: diff --git a/javascript/sources/YGEnums.js b/javascript/sources/YGEnums.js index 400f27f1..6477789f 100644 --- a/javascript/sources/YGEnums.js +++ b/javascript/sources/YGEnums.js @@ -9,21 +9,22 @@ module.exports = { - FLEX_DIRECTION_COUNT: 4, - FLEX_DIRECTION_COLUMN: 0, - FLEX_DIRECTION_COLUMN_REVERSE: 1, - FLEX_DIRECTION_ROW: 2, - FLEX_DIRECTION_ROW_REVERSE: 3, + ALIGN_COUNT: 6, + ALIGN_AUTO: 0, + ALIGN_FLEX_START: 1, + ALIGN_CENTER: 2, + ALIGN_FLEX_END: 3, + ALIGN_STRETCH: 4, + ALIGN_BASELINE: 5, - MEASURE_MODE_COUNT: 3, - MEASURE_MODE_UNDEFINED: 0, - MEASURE_MODE_EXACTLY: 1, - MEASURE_MODE_AT_MOST: 2, + DIMENSION_COUNT: 2, + DIMENSION_WIDTH: 0, + DIMENSION_HEIGHT: 1, - PRINT_OPTIONS_COUNT: 3, - PRINT_OPTIONS_LAYOUT: 1, - PRINT_OPTIONS_STYLE: 2, - PRINT_OPTIONS_CHILDREN: 4, + DIRECTION_COUNT: 3, + DIRECTION_INHERIT: 0, + DIRECTION_LTR: 1, + DIRECTION_RTL: 2, EDGE_COUNT: 9, EDGE_LEFT: 0, @@ -36,13 +37,15 @@ module.exports = { EDGE_VERTICAL: 7, EDGE_ALL: 8, - POSITION_TYPE_COUNT: 2, - POSITION_TYPE_RELATIVE: 0, - POSITION_TYPE_ABSOLUTE: 1, + EXPERIMENTAL_FEATURE_COUNT: 2, + EXPERIMENTAL_FEATURE_ROUNDING: 0, + EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: 1, - DIMENSION_COUNT: 2, - DIMENSION_WIDTH: 0, - DIMENSION_HEIGHT: 1, + FLEX_DIRECTION_COUNT: 4, + FLEX_DIRECTION_COLUMN: 0, + FLEX_DIRECTION_COLUMN_REVERSE: 1, + FLEX_DIRECTION_ROW: 2, + FLEX_DIRECTION_ROW_REVERSE: 3, JUSTIFY_COUNT: 5, JUSTIFY_FLEX_START: 0, @@ -51,11 +54,6 @@ module.exports = { JUSTIFY_SPACE_BETWEEN: 3, JUSTIFY_SPACE_AROUND: 4, - DIRECTION_COUNT: 3, - DIRECTION_INHERIT: 0, - DIRECTION_LTR: 1, - DIRECTION_RTL: 2, - LOG_LEVEL_COUNT: 5, LOG_LEVEL_ERROR: 0, LOG_LEVEL_WARN: 1, @@ -63,30 +61,32 @@ module.exports = { LOG_LEVEL_DEBUG: 3, LOG_LEVEL_VERBOSE: 4, - WRAP_COUNT: 2, - WRAP_NO_WRAP: 0, - WRAP_WRAP: 1, + MEASURE_MODE_COUNT: 3, + MEASURE_MODE_UNDEFINED: 0, + MEASURE_MODE_EXACTLY: 1, + MEASURE_MODE_AT_MOST: 2, OVERFLOW_COUNT: 3, OVERFLOW_VISIBLE: 0, OVERFLOW_HIDDEN: 1, OVERFLOW_SCROLL: 2, - EXPERIMENTAL_FEATURE_COUNT: 2, - EXPERIMENTAL_FEATURE_ROUNDING: 0, - EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: 1, + POSITION_TYPE_COUNT: 2, + POSITION_TYPE_RELATIVE: 0, + POSITION_TYPE_ABSOLUTE: 1, - ALIGN_COUNT: 6, - ALIGN_AUTO: 0, - ALIGN_FLEX_START: 1, - ALIGN_CENTER: 2, - ALIGN_FLEX_END: 3, - ALIGN_STRETCH: 4, - ALIGN_BASELINE: 5, + PRINT_OPTIONS_COUNT: 3, + PRINT_OPTIONS_LAYOUT: 1, + PRINT_OPTIONS_STYLE: 2, + PRINT_OPTIONS_CHILDREN: 4, UNIT_COUNT: 3, UNIT_UNDEFINED: 0, UNIT_PIXEL: 1, UNIT_PERCENT: 2, + WRAP_COUNT: 2, + WRAP_NO_WRAP: 0, + WRAP_WRAP: 1, + }; diff --git a/yoga/YGEnums.h b/yoga/YGEnums.h index 21eb4809..afc44513 100644 --- a/yoga/YGEnums.h +++ b/yoga/YGEnums.h @@ -13,91 +13,112 @@ YG_EXTERN_C_BEGIN -#define YGFlexDirectionCount 4 -typedef YG_ENUM_BEGIN(YGFlexDirection) { - YGFlexDirectionColumn, YGFlexDirectionColumnReverse, YGFlexDirectionRow, - YGFlexDirectionRowReverse, -} -YG_ENUM_END(YGFlexDirection); - -#define YGMeasureModeCount 3 -typedef YG_ENUM_BEGIN(YGMeasureMode) { - YGMeasureModeUndefined, YGMeasureModeExactly, YGMeasureModeAtMost, -} -YG_ENUM_END(YGMeasureMode); - -#define YGPrintOptionsCount 3 -typedef YG_ENUM_BEGIN(YGPrintOptions) { - YGPrintOptionsLayout = 1, YGPrintOptionsStyle = 2, YGPrintOptionsChildren = 4, -} -YG_ENUM_END(YGPrintOptions); - -#define YGEdgeCount 9 -typedef YG_ENUM_BEGIN(YGEdge) { - YGEdgeLeft, YGEdgeTop, YGEdgeRight, YGEdgeBottom, YGEdgeStart, YGEdgeEnd, YGEdgeHorizontal, - YGEdgeVertical, YGEdgeAll, -} -YG_ENUM_END(YGEdge); - -#define YGPositionTypeCount 2 -typedef YG_ENUM_BEGIN(YGPositionType) { - YGPositionTypeRelative, YGPositionTypeAbsolute, -} -YG_ENUM_END(YGPositionType); +#define YGAlignCount 6 +typedef YG_ENUM_BEGIN(YGAlign) { + YGAlignAuto, + YGAlignFlexStart, + YGAlignCenter, + YGAlignFlexEnd, + YGAlignStretch, + YGAlignBaseline, +} YG_ENUM_END(YGAlign); #define YGDimensionCount 2 typedef YG_ENUM_BEGIN(YGDimension) { - YGDimensionWidth, YGDimensionHeight, -} -YG_ENUM_END(YGDimension); - -#define YGJustifyCount 5 -typedef YG_ENUM_BEGIN(YGJustify) { - YGJustifyFlexStart, YGJustifyCenter, YGJustifyFlexEnd, YGJustifySpaceBetween, - YGJustifySpaceAround, -} -YG_ENUM_END(YGJustify); + YGDimensionWidth, + YGDimensionHeight, +} YG_ENUM_END(YGDimension); #define YGDirectionCount 3 typedef YG_ENUM_BEGIN(YGDirection) { - YGDirectionInherit, YGDirectionLTR, YGDirectionRTL, -} -YG_ENUM_END(YGDirection); + YGDirectionInherit, + YGDirectionLTR, + YGDirectionRTL, +} YG_ENUM_END(YGDirection); -#define YGLogLevelCount 5 -typedef YG_ENUM_BEGIN(YGLogLevel) { - YGLogLevelError, YGLogLevelWarn, YGLogLevelInfo, YGLogLevelDebug, YGLogLevelVerbose, -} -YG_ENUM_END(YGLogLevel); - -#define YGWrapCount 2 -typedef YG_ENUM_BEGIN(YGWrap) { - YGWrapNoWrap, YGWrapWrap, -} -YG_ENUM_END(YGWrap); - -#define YGOverflowCount 3 -typedef YG_ENUM_BEGIN(YGOverflow) { - YGOverflowVisible, YGOverflowHidden, YGOverflowScroll, -} -YG_ENUM_END(YGOverflow); +#define YGEdgeCount 9 +typedef YG_ENUM_BEGIN(YGEdge) { + YGEdgeLeft, + YGEdgeTop, + YGEdgeRight, + YGEdgeBottom, + YGEdgeStart, + YGEdgeEnd, + YGEdgeHorizontal, + YGEdgeVertical, + YGEdgeAll, +} YG_ENUM_END(YGEdge); #define YGExperimentalFeatureCount 2 typedef YG_ENUM_BEGIN(YGExperimentalFeature) { - YGExperimentalFeatureRounding, YGExperimentalFeatureWebFlexBasis, -} -YG_ENUM_END(YGExperimentalFeature); + YGExperimentalFeatureRounding, + YGExperimentalFeatureWebFlexBasis, +} YG_ENUM_END(YGExperimentalFeature); -#define YGAlignCount 6 -typedef YG_ENUM_BEGIN(YGAlign) { - YGAlignAuto, YGAlignFlexStart, YGAlignCenter, YGAlignFlexEnd, YGAlignStretch, YGAlignBaseline, -} -YG_ENUM_END(YGAlign); +#define YGFlexDirectionCount 4 +typedef YG_ENUM_BEGIN(YGFlexDirection) { + YGFlexDirectionColumn, + YGFlexDirectionColumnReverse, + YGFlexDirectionRow, + YGFlexDirectionRowReverse, +} YG_ENUM_END(YGFlexDirection); + +#define YGJustifyCount 5 +typedef YG_ENUM_BEGIN(YGJustify) { + YGJustifyFlexStart, + YGJustifyCenter, + YGJustifyFlexEnd, + YGJustifySpaceBetween, + YGJustifySpaceAround, +} YG_ENUM_END(YGJustify); + +#define YGLogLevelCount 5 +typedef YG_ENUM_BEGIN(YGLogLevel) { + YGLogLevelError, + YGLogLevelWarn, + YGLogLevelInfo, + YGLogLevelDebug, + YGLogLevelVerbose, +} YG_ENUM_END(YGLogLevel); + +#define YGMeasureModeCount 3 +typedef YG_ENUM_BEGIN(YGMeasureMode) { + YGMeasureModeUndefined, + YGMeasureModeExactly, + YGMeasureModeAtMost, +} YG_ENUM_END(YGMeasureMode); + +#define YGOverflowCount 3 +typedef YG_ENUM_BEGIN(YGOverflow) { + YGOverflowVisible, + YGOverflowHidden, + YGOverflowScroll, +} YG_ENUM_END(YGOverflow); + +#define YGPositionTypeCount 2 +typedef YG_ENUM_BEGIN(YGPositionType) { + YGPositionTypeRelative, + YGPositionTypeAbsolute, +} YG_ENUM_END(YGPositionType); + +#define YGPrintOptionsCount 3 +typedef YG_ENUM_BEGIN(YGPrintOptions) { + YGPrintOptionsLayout = 1, + YGPrintOptionsStyle = 2, + YGPrintOptionsChildren = 4, +} YG_ENUM_END(YGPrintOptions); #define YGUnitCount 3 typedef YG_ENUM_BEGIN(YGUnit) { - YGUnitUndefined, YGUnitPixel, YGUnitPercent, -} -YG_ENUM_END(YGUnit); + YGUnitUndefined, + YGUnitPixel, + YGUnitPercent, +} YG_ENUM_END(YGUnit); + +#define YGWrapCount 2 +typedef YG_ENUM_BEGIN(YGWrap) { + YGWrapNoWrap, + YGWrapWrap, +} YG_ENUM_END(YGWrap); YG_EXTERN_C_END