infra: gen-v8-gn.py should work with ABC=<int> defines

Such defines were introduced in a8ea1f12e3 for
- V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT
- V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT
- V8_PROMISE_INTERNAL_FIELD_COUNT

Since that commit the v8-gn.h includes lines like below that do not
compile well.
```
ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0
define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0 1
else
if V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0 != 1
error "V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0 defined but not set to 1"
endif
endif  // V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0
```

Bug: chromium:42204638
Change-Id: I750f6c633b9aae61190c8d431f21c9bbea9297dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6338522
Reviewed-by: Darius Mercadier <dmercadier@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Alexey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/main@{#99278}
This commit is contained in:
Alexey Kozy authored and V8 LUCI CQ committed 2025-03-17 03:38:26 -07:00
1 parent d73530cfd9
commit ae457c7043
1 file changed
+20 -7
+20 -7
View File
@@ -19,22 +19,35 @@ def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument('-o', '--output', type=str, action='store',
help='Location of header file to generate')
parser.add_argument('-p', '--positive-define', type=str, action='append',
help='Externally visibile positive definition')
parser.add_argument(
'-p',
'--positive-define',
type=str,
action='append',
help='Externally visibile positive definition in format NAME or NAME=VALUE'
)
parser.add_argument('-n', '--negative-define', type=str, action='append',
help='Externally visibile negative definition')
args = parser.parse_args()
def generate_positive_definition(out, define):
def generate_positive_definition(out, define_str):
# Split the define into name and value if it contains '='
if '=' in define_str:
define, value = define_str.split('=', 1)
else:
define = define_str
value = "1" # Default value if not specified
out.write('''
#ifndef {define}
#define {define} 1
#define {define} {value}
#else
#if {define} != 1
#error "{define} defined but not set to 1"
#if {define} != {value}
#error "{define} defined but not set to {value}"
#endif
#endif // {define}
'''.format(define=define))
'''.format(define=define, value=value))
def generate_negative_definition(out, define):
out.write('''