summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/chrome.gyp37
-rwxr-xr-xtools/grit/grit_info.py71
2 files changed, 53 insertions, 55 deletions
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index 4b62f52..e6004ec 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -345,6 +345,14 @@
'includes': [ '../build/grit_action.gypi' ],
},
{
+ 'action_name': 'devtools_frontend_resources',
+ 'variables': {
+ 'grit_grd_file':
+ 'browser/debugger/frontend/devtools_frontend_resources.grd',
+ },
+ 'includes': [ '../build/grit_action.gypi' ]
+ },
+ {
'action_name': 'devtools_resources',
# This can't use ../build/grit_action.gypi because the grd file
# is generated a build time, so the trick of using grit_info to get
@@ -355,6 +363,7 @@
},
'inputs': [
'<(grit_grd_file)',
+ '<!@pymod_do_main(grit_info --inputs)',
],
'outputs': [
'<(grit_out_dir)/grit/devtools_resources.h',
@@ -369,34 +378,6 @@
'<@(grit_defines)' ],
'message': 'Generating resources from <(grit_grd_file)',
},
- {
- 'action_name': 'devtools_frontend_resources',
- # This can't use ../build/grit_action.gypi because the grd file
- # is generated a build time, so the trick of using grit_info to get
- # the real inputs/outputs at GYP time isn't possible.
- 'variables': {
- 'grit_cmd': ['python', '../tools/grit/grit.py'],
- 'frontend_folder': 'browser/debugger/frontend',
- 'grit_grd_file':
- '<(frontend_folder)/devtools_frontend_resources.grd',
- },
- 'inputs': [
- '<(grit_grd_file)',
- '<(frontend_folder)/devtools_frontend.html',
- ],
- 'outputs': [
- '<(grit_out_dir)/grit/devtools_frontend_resources.h',
- '<(grit_out_dir)/devtools_frontend_resources.pak',
- '<(grit_out_dir)/grit/devtools_frontend_resources_map.cc',
- '<(grit_out_dir)/grit/devtools_frontend_resources_map.h',
- ],
- 'action': ['<@(grit_cmd)',
- '-i', '<(grit_grd_file)', 'build',
- '-o', '<(grit_out_dir)',
- '-D', 'SHARED_INTERMEDIATE_DIR=<(SHARED_INTERMEDIATE_DIR)',
- '<@(grit_defines)' ],
- 'message': 'Generating resources from <(grit_grd_file)',
- },
],
'includes': [ '../build/grit_target.gypi' ],
},
diff --git a/tools/grit/grit_info.py b/tools/grit/grit_info.py
index 81176e1..9723aad 100755
--- a/tools/grit/grit_info.py
+++ b/tools/grit/grit_info.py
@@ -98,6 +98,10 @@ def relpath(path, start=os.path.curdir):
##############################################################################
+class WrongNumberOfArguments(Exception):
+ pass
+
+
def Outputs(filename, defines):
grd = grd_reader.Parse(
filename, defines=defines, tags_to_ignore=set(['messages']))
@@ -130,6 +134,16 @@ def Outputs(filename, defines):
return [t.replace('\\', '/') for t in target]
+def GritSourceFiles():
+ files = []
+ grit_root_dir = relpath(os.path.dirname(__file__), os.getcwd())
+ for root, dirs, filenames in os.walk(grit_root_dir):
+ grit_src = [os.path.join(root, f) for f in filenames
+ if f.endswith('.py') or f == 'resource_ids']
+ files.extend(grit_src)
+ return files
+
+
def Inputs(filename, defines):
grd = grd_reader.Parse(
filename, debug=False, defines=defines, tags_to_ignore=set(['messages']))
@@ -147,20 +161,12 @@ def Inputs(filename, defines):
if node.attrs['flattenhtml'] == 'true':
files.extend(node.GetHtmlResourceFilenames())
- # Add in the grit source files. If one of these change, we want to re-run
- # grit.
- grit_root_dir = relpath(os.path.dirname(__file__), os.getcwd())
- for root, dirs, filenames in os.walk(grit_root_dir):
- grit_src = [os.path.join(root, f) for f in filenames
- if f.endswith('.py') or f == 'resource_ids']
- files.extend(grit_src)
-
- return [f.replace('\\', '/') for f in files]
+ return files
def PrintUsage():
- print 'USAGE: ./grit_info.py --inputs [-D foo] <grd-files>..'
- print ' ./grit_info.py --outputs [-D foo] <out-prefix> <grd-files>..'
+ print 'USAGE: ./grit_info.py --inputs [-D foo] <grd-file>'
+ print ' ./grit_info.py --outputs [-D foo] <out-prefix> <grd-file>'
def DoMain(argv):
@@ -175,36 +181,47 @@ def DoMain(argv):
options, args = parser.parse_args(argv)
- if not len(args):
- return None
-
defines = {}
for define in options.defines:
defines[define] = 1
if options.inputs:
- for filename in args:
+ if len(args) > 1:
+ raise WrongNumberOfArguments("Expected 0 or 1 arguments for --inputs.")
+
+ inputs = []
+ if len(args) == 1:
+ filename = args[0]
inputs = Inputs(filename, defines)
+
+ # Add in the grit source files. If one of these change, we want to re-run
+ # grit.
+ inputs.extend(GritSourceFiles())
+ inputs = [f.replace('\\', '/') for f in inputs]
+
+ if len(args) == 1:
# Include grd file as second input (works around gyp expecting it).
- inputs = [inputs[0], filename] + inputs[1:]
- if options.whitelist_files:
- inputs.extend(options.whitelist_files)
- return '\n'.join(inputs)
+ inputs = [inputs[0], args[0]] + inputs[1:]
+ if options.whitelist_files:
+ inputs.extend(options.whitelist_files)
+ return '\n'.join(inputs)
elif options.outputs:
- if len(args) < 2:
- return None
+ if len(args) != 2:
+ raise WrongNumberOfArguments("Expected exactly 2 arguments for --ouputs.")
- for f in args[1:]:
- outputs = [posixpath.join(args[0], f) for f in Outputs(f, defines)]
- return '\n'.join(outputs)
+ prefix, filename = args
+ outputs = [posixpath.join(prefix, f) for f in Outputs(filename, defines)]
+ return '\n'.join(outputs)
else:
- return None
+ raise WrongNumberOfArguments("Expected --inputs or --outputs.")
def main(argv):
- result = DoMain(argv[1:])
- if result == None:
+ try:
+ result = DoMain(argv[1:])
+ except WrongNumberOfArguments, e:
PrintUsage()
+ print e
return 1
print result
return 0