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

Side by Side Diff: ppapi/generators/idl_generator.py

Issue 8478005: Allow defaults for generator which will check all available versions. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 1 month 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
« no previous file with comments | « ppapi/generators/generator.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # 2 #
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 import sys 7 import sys
8 8
9 from idl_log import ErrOut, InfoOut, WarnOut 9 from idl_log import ErrOut, InfoOut, WarnOut
10 from idl_option import GetOption, Option, ParseOptions 10 from idl_option import GetOption, Option, ParseOptions
11 11
12 GeneratorList = [] 12 GeneratorList = []
13 13
14 Option('release', 'Which release to generate.', default='') 14 Option('release', 'Which release to generate.', default='')
15 Option('range', 'Which ranges in the form of MIN,MAX.', default='M13,M16') 15 Option('range', 'Which ranges in the form of MIN,MAX.', default='start,end')
16 16
17 17
18 # 18 #
19 # Generator 19 # Generator
20 # 20 #
21 # Base class for generators. This class provides a mechanism for 21 # Base class for generators. This class provides a mechanism for
22 # adding new generator objects to the IDL driver. To use this class 22 # adding new generator objects to the IDL driver. To use this class
23 # override the GenerateRelease and GenerateRange members, and 23 # override the GenerateRelease and GenerateRange members, and
24 # instantiate one copy of the class in the same module which defines it to 24 # instantiate one copy of the class in the same module which defines it to
25 # register the generator. After the AST is generated, call the static Run 25 # register the generator. After the AST is generated, call the static Run
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 if self.run_switch.Get(): 59 if self.run_switch.Get():
60 return options 60 return options
61 return None 61 return None
62 62
63 def Generate(self, ast, options): 63 def Generate(self, ast, options):
64 self.errors = 0 64 self.errors = 0
65 65
66 rangestr = GetOption('range') 66 rangestr = GetOption('range')
67 releasestr = GetOption('release') 67 releasestr = GetOption('release')
68 68
69 print "Found releases: %s" % ast.releases
70
69 # Check for a range option which over-rides a release option 71 # Check for a range option which over-rides a release option
70 if not releasestr and rangestr: 72 if not releasestr and rangestr:
71 range_list = rangestr.split(',') 73 range_list = rangestr.split(',')
72 if len(range_list) != 2: 74 if len(range_list) != 2:
73 self.Error('Failed to generate for %s, incorrect range: "%s"' % 75 self.Error('Failed to generate for %s, incorrect range: "%s"' %
74 (self.name, rangestr)) 76 (self.name, rangestr))
75 else: 77 else:
76 vmin = range_list[0] 78 vmin = range_list[0]
77 vmax = range_list[1] 79 vmax = range_list[1]
80
81 # Generate 'start' and 'end' represent first and last found.
82 if vmin == 'start':
83 vmin = ast.releases[0]
84 if vmax == 'end':
85 vmax = ast.releases[-1]
86
78 vmin = ast.releases.index(vmin) 87 vmin = ast.releases.index(vmin)
79 vmax = ast.releases.index(vmax) + 1 88 vmax = ast.releases.index(vmax) + 1
80 range = ast.releases[vmin:vmax] 89 range = ast.releases[vmin:vmax]
81 InfoOut.Log('Generate range %s of %s.' % (range, self.name)) 90 InfoOut.Log('Generate range %s of %s.' % (range, self.name))
82 ret = self.GenerateRange(ast, range, options) 91 ret = self.GenerateRange(ast, range, options)
83 if ret < 0: 92 if ret < 0:
84 self.Error('Failed to generate range %s : %s.' %(vmin, vmax)) 93 self.Error('Failed to generate range %s : %s.' %(vmin, vmax))
85 else: 94 else:
86 InfoOut.Log('%s wrote %d files.' % (self.name, ret)) 95 InfoOut.Log('%s wrote %d files.' % (self.name, ret))
87 # Otherwise this should be a single release generation 96 # Otherwise this should be a single release generation
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 filenames = ParseOptions(args) 248 filenames = ParseOptions(args)
240 ast = ParseFiles(filenames) 249 ast = ParseFiles(filenames)
241 250
242 return Generator.Run(ast) 251 return Generator.Run(ast)
243 252
244 253
245 if __name__ == '__main__': 254 if __name__ == '__main__':
246 GeneratorReleaseTest('Test Gen', 'testgen', 'Generator Class Test.') 255 GeneratorReleaseTest('Test Gen', 'testgen', 'Generator Class Test.')
247 sys.exit(Main(sys.argv[1:])) 256 sys.exit(Main(sys.argv[1:]))
248 257
OLDNEW
« no previous file with comments | « ppapi/generators/generator.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698