Chromium Code Reviews| Index: build/gyp_chromium |
| diff --git a/build/gyp_chromium b/build/gyp_chromium |
| index 11125751a0e5b0e515741ee8d18cd96c608a40e0..82f4dfe050c33904b3df0a530b33cdf493ddbcc0 100755 |
| --- a/build/gyp_chromium |
| +++ b/build/gyp_chromium |
| @@ -7,6 +7,7 @@ |
| # This script is wrapper for Chromium that adds some support for how GYP |
| # is invoked by Chromium beyond what can be done in the gclient hooks. |
| +import argparse |
| import glob |
| import gyp_environment |
| import os |
| @@ -124,15 +125,10 @@ def GetGypVars(supplemental_files): |
| env_items = ProcessGypDefinesItems( |
| shlex.split(os.environ.get('GYP_DEFINES', ''))) |
| - # GYP defines from the command line. We can't use optparse since we want |
| - # to ignore all arguments other than "-D". |
| - cmdline_input_items = [] |
| - for i in range(len(sys.argv))[1:]: |
| - if sys.argv[i].startswith('-D'): |
| - if sys.argv[i] == '-D' and i + 1 < len(sys.argv): |
| - cmdline_input_items += [sys.argv[i + 1]] |
| - elif len(sys.argv[i]) > 2: |
| - cmdline_input_items += [sys.argv[i][2:]] |
| + # GYP defines from the command line. |
| + parser = argparse.ArgumentParser() |
| + parser.add_argument('-D', dest='defines', action='append', default=[]) |
| + cmdline_input_items = parser.parse_known_args()[0].defines |
| cmdline_items = ProcessGypDefinesItems(cmdline_input_items) |
| vars_dict = dict(supp_items + env_items + cmdline_items) |
| @@ -141,21 +137,21 @@ def GetGypVars(supplemental_files): |
| def GetOutputDirectory(): |
| """Returns the output directory that GYP will use.""" |
| - # GYP generator flags from the command line. We can't use optparse since we |
| - # want to ignore all arguments other than "-G". |
| - needle = '-Goutput_dir=' |
| - cmdline_input_items = [] |
| - for item in sys.argv[1:]: |
| - if item.startswith(needle): |
| - return item[len(needle):] |
| - env_items = shlex.split(os.environ.get('GYP_GENERATOR_FLAGS', '')) |
| + # handle command line generator flags |
|
scottmg
2015/02/03 01:26:45
nit; capital H, end with '.'.
Sam Clegg
2015/02/03 02:04:13
Done.
|
| + parser = argparse.ArgumentParser() |
| + parser.add_argument('-G', dest='genflags', default=[], action='append') |
| + genflags = parser.parse_known_args()[0].genflags |
| + |
| + # handle generator flags from the environment |
|
scottmg
2015/02/03 01:26:45
same
Sam Clegg
2015/02/03 02:04:13
Done.
|
| + genflags += shlex.split(os.environ.get('GYP_GENERATOR_FLAGS', '')) |
| + |
| needle = 'output_dir=' |
| - for item in env_items: |
| + for item in genflags: |
| if item.startswith(needle): |
| return item[len(needle):] |
| - return "out" |
| + return 'out' |
| def additional_include_files(supplemental_files, args=[]): |