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

Side by Side Diff: tools/grit/grit/tool/build.py

Issue 2690263004: Add option to GRIT to provide a resource ordering input file. (Closed)
Patch Set: Removed Mac resource ordering file. Created 3 years, 10 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
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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 '''The 'grit build' tool along with integration for this tool with the 6 '''The 'grit build' tool along with integration for this tool with the
7 SCons build system. 7 SCons build system.
8 ''' 8 '''
9 9
10 import codecs 10 import codecs
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 78
79 --assert-file-list Provide a file listing multiple asserted output files. 79 --assert-file-list Provide a file listing multiple asserted output files.
80 There is one file name per line. This acts like specifying 80 There is one file name per line. This acts like specifying
81 each file with "-a" on the command line, but without the 81 each file with "-a" on the command line, but without the
82 possibility of running into OS line-length limits for very 82 possibility of running into OS line-length limits for very
83 long lists. 83 long lists.
84 84
85 -o OUTPUTDIR Specify what directory output paths are relative to. 85 -o OUTPUTDIR Specify what directory output paths are relative to.
86 Defaults to the current directory. 86 Defaults to the current directory.
87 87
88 -p FILE Specify a file containing a pre-determined mapping from
89 resource names to resource ids which will be used to assign
90 resource ids to those resources. Resources not found in this
91 file will assigned ids normally. The file is of the format:
Nico 2017/02/17 21:44:08 s/will/will be/ Have you considered if missing ID
Alexei Svitkine (slow) 2017/02/17 22:07:51 Done.
92 RESOURCE_ONE_NAME 123
93 RESOURCE_TWO_NAME 124
94
88 -D NAME[=VAL] Specify a C-preprocessor-like define NAME with optional 95 -D NAME[=VAL] Specify a C-preprocessor-like define NAME with optional
89 value VAL (defaults to 1) which will be used to control 96 value VAL (defaults to 1) which will be used to control
90 conditional inclusion of resources. 97 conditional inclusion of resources.
91 98
92 -E NAME=VALUE Set environment variable NAME to VALUE (within grit). 99 -E NAME=VALUE Set environment variable NAME to VALUE (within grit).
93 100
94 -f FIRSTIDSFILE Path to a python file that specifies the first id of 101 -f FIRSTIDSFILE Path to a python file that specifies the first id of
95 value to use for resources. A non-empty value here will 102 value to use for resources. A non-empty value here will
96 override the value specified in the <grit> node's 103 override the value specified in the <grit> node's
97 first_ids_file. 104 first_ids_file.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 IDs). This helps ensure that values of IDs stay the same, that all messages 146 IDs). This helps ensure that values of IDs stay the same, that all messages
140 are exported to translation interchange files (e.g. XMB files), etc. 147 are exported to translation interchange files (e.g. XMB files), etc.
141 ''' 148 '''
142 149
143 def ShortDescription(self): 150 def ShortDescription(self):
144 return 'A tool that builds RC files for compilation.' 151 return 'A tool that builds RC files for compilation.'
145 152
146 def Run(self, opts, args): 153 def Run(self, opts, args):
147 self.output_directory = '.' 154 self.output_directory = '.'
148 first_ids_file = None 155 first_ids_file = None
156 predetermined_ids_file = None
149 whitelist_filenames = [] 157 whitelist_filenames = []
150 assert_output_files = [] 158 assert_output_files = []
151 target_platform = None 159 target_platform = None
152 depfile = None 160 depfile = None
153 depdir = None 161 depdir = None
154 rc_header_format = None 162 rc_header_format = None
155 output_all_resource_defines = None 163 output_all_resource_defines = None
156 write_only_new = False 164 write_only_new = False
157 depend_on_stamp = False 165 depend_on_stamp = False
158 js_minifier = None 166 js_minifier = None
159 replace_ellipsis = True 167 replace_ellipsis = True
160 (own_opts, args) = getopt.getopt(args, 'a:o:D:E:f:w:t:h:', 168 (own_opts, args) = getopt.getopt(args, 'a:p:o:D:E:f:w:t:h:',
161 ('depdir=','depfile=','assert-file-list=', 169 ('depdir=','depfile=','assert-file-list=',
162 'output-all-resource-defines', 170 'output-all-resource-defines',
163 'no-output-all-resource-defines', 171 'no-output-all-resource-defines',
164 'no-replace-ellipsis', 172 'no-replace-ellipsis',
165 'depend-on-stamp', 173 'depend-on-stamp',
166 'js-minifier=', 174 'js-minifier=',
167 'write-only-new=')) 175 'write-only-new='))
168 for (key, val) in own_opts: 176 for (key, val) in own_opts:
169 if key == '-a': 177 if key == '-a':
170 assert_output_files.append(val) 178 assert_output_files.append(val)
(...skipping 14 matching lines...) Expand all
185 # .grd itself. 193 # .grd itself.
186 first_ids_file = val 194 first_ids_file = val
187 elif key == '-w': 195 elif key == '-w':
188 whitelist_filenames.append(val) 196 whitelist_filenames.append(val)
189 elif key == '--output-all-resource-defines': 197 elif key == '--output-all-resource-defines':
190 output_all_resource_defines = True 198 output_all_resource_defines = True
191 elif key == '--no-output-all-resource-defines': 199 elif key == '--no-output-all-resource-defines':
192 output_all_resource_defines = False 200 output_all_resource_defines = False
193 elif key == '--no-replace-ellipsis': 201 elif key == '--no-replace-ellipsis':
194 replace_ellipsis = False 202 replace_ellipsis = False
203 elif key == '-p':
204 predetermined_ids_file = val
195 elif key == '-t': 205 elif key == '-t':
196 target_platform = val 206 target_platform = val
197 elif key == '-h': 207 elif key == '-h':
198 rc_header_format = val 208 rc_header_format = val
199 elif key == '--depdir': 209 elif key == '--depdir':
200 depdir = val 210 depdir = val
201 elif key == '--depfile': 211 elif key == '--depfile':
202 depfile = val 212 depfile = val
203 elif key == '--write-only-new': 213 elif key == '--write-only-new':
204 write_only_new = val != '0' 214 write_only_new = val != '0'
(...skipping 21 matching lines...) Expand all
226 self.whitelist_names.update(whitelist_contents.strip().split('\n')) 236 self.whitelist_names.update(whitelist_contents.strip().split('\n'))
227 237
228 if js_minifier: 238 if js_minifier:
229 minifier.SetJsMinifier(js_minifier) 239 minifier.SetJsMinifier(js_minifier)
230 240
231 self.write_only_new = write_only_new 241 self.write_only_new = write_only_new
232 242
233 self.res = grd_reader.Parse(opts.input, 243 self.res = grd_reader.Parse(opts.input,
234 debug=opts.extra_verbose, 244 debug=opts.extra_verbose,
235 first_ids_file=first_ids_file, 245 first_ids_file=first_ids_file,
246 predetermined_ids_file=predetermined_ids_file,
236 defines=self.defines, 247 defines=self.defines,
237 target_platform=target_platform) 248 target_platform=target_platform)
238 249
239 # If the output_all_resource_defines option is specified, override the value 250 # If the output_all_resource_defines option is specified, override the value
240 # found in the grd file. 251 # found in the grd file.
241 if output_all_resource_defines is not None: 252 if output_all_resource_defines is not None:
242 self.res.SetShouldOutputAllResourceDefines(output_all_resource_defines) 253 self.res.SetShouldOutputAllResourceDefines(output_all_resource_defines)
243 254
244 # Set an output context so that conditionals can use defines during the 255 # Set an output context so that conditionals can use defines during the
245 # gathering stage; we use a dummy language here since we are not outputting 256 # gathering stage; we use a dummy language here since we are not outputting
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 self.MakeDirectoriesTo(depfile) 526 self.MakeDirectoriesTo(depfile)
516 outfile = self.fo_create(depfile, 'w', encoding='utf-8') 527 outfile = self.fo_create(depfile, 'w', encoding='utf-8')
517 outfile.writelines(depfile_contents) 528 outfile.writelines(depfile_contents)
518 529
519 @staticmethod 530 @staticmethod
520 def MakeDirectoriesTo(file): 531 def MakeDirectoriesTo(file):
521 '''Creates directories necessary to contain |file|.''' 532 '''Creates directories necessary to contain |file|.'''
522 dir = os.path.split(file)[0] 533 dir = os.path.split(file)[0]
523 if not os.path.exists(dir): 534 if not os.path.exists(dir):
524 os.makedirs(dir) 535 os.makedirs(dir)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698