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

Side by Side Diff: pylib/gyp/__init__.py

Issue 202059: Add a --check flag. This causes gyp to check syntax of files more carefully,... (Closed) Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: '' Created 11 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
« no previous file with comments | « no previous file | pylib/gyp/input.py » ('j') | 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 import copy 3 import copy
4 import gyp.input 4 import gyp.input
5 import optparse 5 import optparse
6 import os.path 6 import os.path
7 import re 7 import re
8 import shlex 8 import shlex
9 import sys 9 import sys
10 10
(...skipping 12 matching lines...) Expand all
23 extension = '.gyp' 23 extension = '.gyp'
24 files = os.listdir(os.getcwd()) 24 files = os.listdir(os.getcwd())
25 build_files = [] 25 build_files = []
26 for file in files: 26 for file in files:
27 if file[-len(extension):] == extension: 27 if file[-len(extension):] == extension:
28 build_files.append(file) 28 build_files.append(file)
29 return build_files 29 return build_files
30 30
31 31
32 def Load(build_files, format, default_variables={}, 32 def Load(build_files, format, default_variables={},
33 includes=[], depth='.', params={}): 33 includes=[], depth='.', params={}, check=False):
34 """ 34 """
35 Loads one or more specified build files. 35 Loads one or more specified build files.
36 default_variables and includes will be copied before use. 36 default_variables and includes will be copied before use.
37 Returns the generator for the specified format and the 37 Returns the generator for the specified format and the
38 data returned by loading the specified build files. 38 data returned by loading the specified build files.
39 """ 39 """
40 default_variables = copy.copy(default_variables) 40 default_variables = copy.copy(default_variables)
41 41
42 # Default variables provided by this program and its modules should be 42 # Default variables provided by this program and its modules should be
43 # named WITH_CAPITAL_LETTERS to provide a distinct "best practice" namespace, 43 # named WITH_CAPITAL_LETTERS to provide a distinct "best practice" namespace,
(...skipping 22 matching lines...) Expand all
66 'non_configuration_keys': 66 'non_configuration_keys':
67 getattr(generator, 'generator_additional_non_configuration_keys', []), 67 getattr(generator, 'generator_additional_non_configuration_keys', []),
68 'path_sections': 68 'path_sections':
69 getattr(generator, 'generator_additional_path_sections', []), 69 getattr(generator, 'generator_additional_path_sections', []),
70 'extra_sources_for_rules': 70 'extra_sources_for_rules':
71 getattr(generator, 'generator_extra_sources_for_rules', []), 71 getattr(generator, 'generator_extra_sources_for_rules', []),
72 } 72 }
73 73
74 # Process the input specific to this generator. 74 # Process the input specific to this generator.
75 result = gyp.input.Load(build_files, default_variables, includes[:], 75 result = gyp.input.Load(build_files, default_variables, includes[:],
76 depth, generator_input_info) 76 depth, generator_input_info, check)
77 return [generator] + result 77 return [generator] + result
78 78
79 def NameValueListToDict(name_value_list): 79 def NameValueListToDict(name_value_list):
80 """ 80 """
81 Takes an array of strings of the form 'NAME=VALUE' and creates a dictionary 81 Takes an array of strings of the form 'NAME=VALUE' and creates a dictionary
82 of the pairs. If a string is simply NAME, then the value in the dictionary 82 of the pairs. If a string is simply NAME, then the value in the dictionary
83 is set to True. If VALUE can be converted to an integer, it is. 83 is set to True. If VALUE can be converted to an integer, it is.
84 """ 84 """
85 result = { } 85 result = { }
86 for item in name_value_list: 86 for item in name_value_list:
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 action='append', default=[], help='turn on a debugging ' 119 action='append', default=[], help='turn on a debugging '
120 'mode for debugging GYP. Supported modes are "variables" ' 120 'mode for debugging GYP. Supported modes are "variables" '
121 'and "general"') 121 'and "general"')
122 parser.add_option('-S', '--suffix', dest='suffix', default='', 122 parser.add_option('-S', '--suffix', dest='suffix', default='',
123 help='suffix to add to generated files') 123 help='suffix to add to generated files')
124 parser.add_option('-G', dest='generator_flags', action='append', default=[], 124 parser.add_option('-G', dest='generator_flags', action='append', default=[],
125 metavar='FLAG=VAL', help='sets generator flag FLAG to VAL') 125 metavar='FLAG=VAL', help='sets generator flag FLAG to VAL')
126 parser.add_option('--generator-output', dest='generator_output', 126 parser.add_option('--generator-output', dest='generator_output',
127 action='store', default=None, metavar='DIR', 127 action='store', default=None, metavar='DIR',
128 help='puts generated build files under DIR') 128 help='puts generated build files under DIR')
129 parser.add_option('--check', dest='check', action='store_true',
130 help='check format of gyp files')
129 131
130 # We read a few things from ~/.gyp, so set up a var for that. 132 # We read a few things from ~/.gyp, so set up a var for that.
131 home_vars = ['HOME'] 133 home_vars = ['HOME']
132 if sys.platform in ('cygwin', 'win32'): 134 if sys.platform in ('cygwin', 'win32'):
133 home_vars.append('USERPROFILE') 135 home_vars.append('USERPROFILE')
134 home = None 136 home = None
135 for home_var in home_vars: 137 for home_var in home_vars:
136 home = os.getenv(home_var) 138 home = os.getenv(home_var)
137 if home != None: 139 if home != None:
138 break 140 break
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 for format in set(options.formats): 264 for format in set(options.formats):
263 params = {'options': options, 265 params = {'options': options,
264 'build_files': build_files, 266 'build_files': build_files,
265 'generator_flags': generator_flags, 267 'generator_flags': generator_flags,
266 'cwd': os.getcwd()} 268 'cwd': os.getcwd()}
267 269
268 # Start with the default variables from the command line. 270 # Start with the default variables from the command line.
269 [generator, flat_list, targets, data] = Load(build_files, format, 271 [generator, flat_list, targets, data] = Load(build_files, format,
270 cmdline_default_variables, 272 cmdline_default_variables,
271 includes, options.depth, 273 includes, options.depth,
272 params) 274 params, options.check)
273 275
274 # TODO(mark): Pass |data| for now because the generator needs a list of 276 # TODO(mark): Pass |data| for now because the generator needs a list of
275 # build files that came in. In the future, maybe it should just accept 277 # build files that came in. In the future, maybe it should just accept
276 # a list, and not the whole data dict. 278 # a list, and not the whole data dict.
277 # NOTE: flat_list is the flattened dependency graph specifying the order 279 # NOTE: flat_list is the flattened dependency graph specifying the order
278 # that targets may be built. Build systems that operate serially or that 280 # that targets may be built. Build systems that operate serially or that
279 # need to have dependencies defined before dependents reference them should 281 # need to have dependencies defined before dependents reference them should
280 # generate targets in the order specified in flat_list. 282 # generate targets in the order specified in flat_list.
281 generator.GenerateOutput(flat_list, targets, data, params) 283 generator.GenerateOutput(flat_list, targets, data, params)
282 284
283 # Done 285 # Done
284 return 0 286 return 0
285 287
286 288
287 if __name__ == '__main__': 289 if __name__ == '__main__':
288 sys.exit(main(sys.argv[1:])) 290 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « no previous file | pylib/gyp/input.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698