From e8dec209df749eac3a3e566d96d0fdde3dadbe1e Mon Sep 17 00:00:00 2001 From: "dglazkov@chromium.org" Date: Mon, 6 Jul 2009 20:08:44 +0000 Subject: Proper fix for the "thousands of macro names must be identifiers" bug. This is all mmentovai. I am just a copier/paster. R=mark BUG=15904 TEST=no more "macro names must be identifiers" errors during V8 bindings generation. Review URL: http://codereview.chromium.org/149207 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19972 0039d316-1c4b-4281-b951-d872f2087c98 --- webkit/build/rule_binding.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'webkit/build') diff --git a/webkit/build/rule_binding.py b/webkit/build/rule_binding.py index ab74f0d..9555d4d 100755 --- a/webkit/build/rule_binding.py +++ b/webkit/build/rule_binding.py @@ -19,6 +19,7 @@ import errno import os +import shlex import shutil import subprocess import sys @@ -68,14 +69,20 @@ def main(args): if not include_dir in include_dirs: include_dirs.append(include_dir) + # The defines come in as one flat string. Split it up into distinct arguments. + if '--defines' in options: + defines_index = options.index('--defines') + if defines_index + 1 < len(options): + split_options = shlex.split(options[defines_index + 1]) + if split_options: + options[defines_index + 1] = ' '.join(split_options) + # Build up the command. command = ['perl', '-w'] for include_dir in include_dirs: command.extend(['-I', include_dir]) command.append(generate_bindings) - # Remove any qouble qoutes that may have gotten in here. We know that none of - # the options will have meaningful double qoutes. - command.extend([option.replace('"', '') for option in options]) + command.extend(options) command.extend(['--outputDir', cppdir, input]) # Do it. check_call is new in 2.5, so simulate its behavior with call and -- cgit v1.1