Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(153)

Side by Side Diff: tools/grit/grit_info.py

Issue 7976026: Prepare for moving grit to its own open-source project. This mostly (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Respond to review comments. Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 '''Tool to determine inputs and outputs of a grit file. 6 '''Tool to determine inputs and outputs of a grit file.
7 ''' 7 '''
8 8
9 import optparse 9 import optparse
10 import os 10 import os
11 import posixpath 11 import posixpath
12 import types 12 import types
13 import sys 13 import sys
14
14 from grit import grd_reader 15 from grit import grd_reader
15 from grit import util 16 from grit import util
16 17
17 ############################################################################## 18 ##############################################################################
18 # os.path.relpath is python 2.6 only. Some bots still run 2.5 only, so I took 19 # os.path.relpath is python 2.6 only. Some bots still run 2.5 only, so I took
19 # the relpath implementation from the python source. 20 # the relpath implementation from the python source.
20 # TODO(thakis): Once we're on 2.6 everywhere, remove this and use 21 # TODO(thakis): Once we're on 2.6 everywhere, remove this and use
21 # os.path.relpath directly. 22 # os.path.relpath directly.
22 23
23 # http://docs.python.org/license.html 24 # http://docs.python.org/license.html
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 raise ValueError("no path specified") 87 raise ValueError("no path specified")
87 88
88 start_list = os.path.abspath(start).split(os.path.sep) 89 start_list = os.path.abspath(start).split(os.path.sep)
89 path_list = os.path.abspath(path).split(os.path.sep) 90 path_list = os.path.abspath(path).split(os.path.sep)
90 91
91 # Work out how much of the filepath is shared by start and path. 92 # Work out how much of the filepath is shared by start and path.
92 i = len(commonprefix([start_list, path_list])) 93 i = len(commonprefix([start_list, path_list]))
93 94
94 rel_list = [os.path.pardir] * (len(start_list)-i) + path_list[i:] 95 rel_list = [os.path.pardir] * (len(start_list)-i) + path_list[i:]
95 if not rel_list: 96 if not rel_list:
96 return curdir 97 return os.path.curdir
97 return os.path.join(*rel_list) 98 return os.path.join(*rel_list)
98 ############################################################################## 99 ##############################################################################
99 100
100 101
101 class WrongNumberOfArguments(Exception): 102 class WrongNumberOfArguments(Exception):
102 pass 103 pass
103 104
104 105
105 def Outputs(filename, defines): 106 def Outputs(filename, defines):
106 grd = grd_reader.Parse( 107 grd = grd_reader.Parse(
(...skipping 25 matching lines...) Expand all
132 target.append(path) 133 target.append(path)
133 134
134 return [t.replace('\\', '/') for t in target] 135 return [t.replace('\\', '/') for t in target]
135 136
136 137
137 def GritSourceFiles(): 138 def GritSourceFiles():
138 files = [] 139 files = []
139 grit_root_dir = relpath(os.path.dirname(__file__), os.getcwd()) 140 grit_root_dir = relpath(os.path.dirname(__file__), os.getcwd())
140 for root, dirs, filenames in os.walk(grit_root_dir): 141 for root, dirs, filenames in os.walk(grit_root_dir):
141 grit_src = [os.path.join(root, f) for f in filenames 142 grit_src = [os.path.join(root, f) for f in filenames
142 if f.endswith('.py') or f == 'resource_ids'] 143 if f.endswith('.py')]
143 files.extend(grit_src) 144 files.extend(grit_src)
145 # TODO(joi@chromium.org): Once we switch to specifying the
146 # resource_ids file via a .grd attribute, it should be considered an
147 # input of grit and this bit should no longer be necessary.
148 default_resource_ids = relpath(
149 os.path.join(grit_root_dir, '..', 'gritsettings', 'resource_ids'),
150 os.getcwd())
151 if os.path.exists(default_resource_ids):
152 files.append(default_resource_ids)
144 return files 153 return files
145 154
146 155
147 def Inputs(filename, defines): 156 def Inputs(filename, defines):
148 grd = grd_reader.Parse( 157 grd = grd_reader.Parse(
149 filename, debug=False, defines=defines, tags_to_ignore=set(['messages'])) 158 filename, debug=False, defines=defines, tags_to_ignore=set(['messages']))
150 files = [] 159 files = []
151 for node in grd: 160 for node in grd:
152 if (node.name == 'structure' or node.name == 'skeleton' or 161 if (node.name == 'structure' or node.name == 'skeleton' or
153 (node.name == 'file' and node.parent and 162 (node.name == 'file' and node.parent and
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 except WrongNumberOfArguments, e: 231 except WrongNumberOfArguments, e:
223 PrintUsage() 232 PrintUsage()
224 print e 233 print e
225 return 1 234 return 1
226 print result 235 print result
227 return 0 236 return 0
228 237
229 238
230 if __name__ == '__main__': 239 if __name__ == '__main__':
231 sys.exit(main(sys.argv)) 240 sys.exit(main(sys.argv))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698