OLD | NEW |
---|---|
1 # | 1 # |
2 # Copyright (C) 2013 Google Inc. All rights reserved. | 2 # Copyright (C) 2013 Google Inc. All rights reserved. |
3 # | 3 # |
4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
6 # met: | 6 # met: |
7 # | 7 # |
8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
112 '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl', | 112 '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl', |
113 ], | 113 ], |
114 | 114 |
115 | 115 |
116 # Python source | 116 # Python source |
117 'jinja_module_files': [ | 117 'jinja_module_files': [ |
118 # jinja2/__init__.py contains version string, so sufficient for package | 118 # jinja2/__init__.py contains version string, so sufficient for package |
119 '<(DEPTH)/third_party/jinja2/__init__.py', | 119 '<(DEPTH)/third_party/jinja2/__init__.py', |
120 '<(DEPTH)/third_party/markupsafe/__init__.py', # jinja2 dep | 120 '<(DEPTH)/third_party/markupsafe/__init__.py', # jinja2 dep |
121 ], | 121 ], |
122 'idl_compiler_files': [ | 122 'idl_lexer_parser_files': [ |
123 'scripts/idl_compiler.py', | |
124 # PLY (Python Lex-Yacc) | 123 # PLY (Python Lex-Yacc) |
125 '<(DEPTH)/third_party/ply/lex.py', | 124 '<(DEPTH)/third_party/ply/lex.py', |
126 '<(DEPTH)/third_party/ply/yacc.py', | 125 '<(DEPTH)/third_party/ply/yacc.py', |
127 # Web IDL lexer/parser (base parser) | 126 # Web IDL lexer/parser (base parser) |
128 '<(DEPTH)/tools/idl_parser/idl_lexer.py', | 127 '<(DEPTH)/tools/idl_parser/idl_lexer.py', |
129 '<(DEPTH)/tools/idl_parser/idl_node.py', | 128 '<(DEPTH)/tools/idl_parser/idl_node.py', |
130 '<(DEPTH)/tools/idl_parser/idl_parser.py', | 129 '<(DEPTH)/tools/idl_parser/idl_parser.py', |
131 # Blink IDL lexer/parser/constructor | 130 # Blink IDL lexer/parser/constructor |
132 'scripts/blink_idl_lexer.py', | 131 'scripts/blink_idl_lexer.py', |
133 'scripts/blink_idl_parser.py', | 132 'scripts/blink_idl_parser.py', |
133 ], | |
134 'idl_compiler_files': [ | |
135 'scripts/idl_compiler.py', | |
136 # Blink IDL front end (ex-lexer/parser) | |
134 'scripts/idl_definitions.py', | 137 'scripts/idl_definitions.py', |
135 'scripts/idl_reader.py', | 138 'scripts/idl_reader.py', |
136 'scripts/idl_validator.py', | 139 'scripts/idl_validator.py', |
137 'scripts/interface_dependency_resolver.py', | 140 'scripts/interface_dependency_resolver.py', |
138 # V8 code generator | 141 # V8 code generator |
139 'scripts/code_generator_v8.py', | 142 'scripts/code_generator_v8.py', |
140 'scripts/v8_attributes.py', | 143 'scripts/v8_attributes.py', |
141 'scripts/v8_callback_interface.py', | 144 'scripts/v8_callback_interface.py', |
142 'scripts/v8_globals.py', | 145 'scripts/v8_globals.py', |
143 'scripts/v8_interface.py', | 146 'scripts/v8_interface.py', |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
274 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', | 277 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', |
275 '--event-names-file', | 278 '--event-names-file', |
276 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in', | 279 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in', |
277 '<@(write_file_only_if_changed)', | 280 '<@(write_file_only_if_changed)', |
278 ], | 281 ], |
279 'message': 'Generating list of Event interfaces', | 282 'message': 'Generating list of Event interfaces', |
280 }] | 283 }] |
281 }, | 284 }, |
282 ################################################################################ | 285 ################################################################################ |
283 { | 286 { |
287 # A separate pre-caching step is *not required* to use parse table caching | |
288 # in PLY, as the cache is concurrency-safe. | |
289 # However, pre-caching ensures that all compiler processes use the cached | |
290 # file (hence maximizing speed), instead of early processes building the | |
291 # table themselves (as it's not yet been written by the time they start). | |
292 'target_name': 'cached_yacc_tables', | |
293 'type': 'none', | |
294 'actions': [{ | |
295 'action_name': 'cache_yacc_tables', | |
296 'inputs': [ | |
297 '<@(idl_lexer_parser_files)', | |
298 ], | |
299 'outputs': [ | |
300 '<(bindings_output_dir)/parsetab.pickle', | |
haraken
2014/03/05 06:18:04
parsed_yacc_table.pickle ?
Nils Barth (inactive)
2014/03/05 06:28:05
"parsetab.pickle" is the PLY standard name.
(Simil
| |
301 ], | |
302 'action': [ | |
303 'python', | |
304 'scripts/blink_idl_parser.py', | |
305 '<(bindings_output_dir)', | |
306 ], | |
307 'message': 'Caching PLY yacc parse tables', | |
308 }], | |
309 }, | |
310 ################################################################################ | |
311 { | |
284 # A separate pre-caching step is *required* to use bytecode caching in | 312 # A separate pre-caching step is *required* to use bytecode caching in |
285 # Jinja (which improves speed significantly), as the bytecode cache is | 313 # Jinja (which improves speed significantly), as the bytecode cache is |
286 # not concurrency-safe on write; details in code_generator_v8.py. | 314 # not concurrency-safe on write; details in code_generator_v8.py. |
287 'target_name': 'cached_jinja_templates', | 315 'target_name': 'cached_jinja_templates', |
288 'type': 'none', | 316 'type': 'none', |
289 'actions': [{ | 317 'actions': [{ |
290 'action_name': 'cache_jinja_templates', | 318 'action_name': 'cache_jinja_templates', |
291 'inputs': [ | 319 'inputs': [ |
292 '<@(jinja_module_files)', | 320 '<@(jinja_module_files)', |
293 'scripts/code_generator_v8.py', | 321 'scripts/code_generator_v8.py', |
(...skipping 13 matching lines...) Expand all Loading... | |
307 }, | 335 }, |
308 ################################################################################ | 336 ################################################################################ |
309 { | 337 { |
310 'target_name': 'individual_generated_bindings', | 338 'target_name': 'individual_generated_bindings', |
311 'type': 'none', | 339 'type': 'none', |
312 # The 'binding' rule generates .h files, so mark as hard_dependency, per: | 340 # The 'binding' rule generates .h files, so mark as hard_dependency, per: |
313 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependenci es | 341 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependenci es |
314 'hard_dependency': 1, | 342 'hard_dependency': 1, |
315 'dependencies': [ | 343 'dependencies': [ |
316 'interfaces_info', | 344 'interfaces_info', |
345 'cached_yacc_tables', | |
317 'cached_jinja_templates', | 346 'cached_jinja_templates', |
318 '../core/core_generated.gyp:generated_testing_idls', | 347 '../core/core_generated.gyp:generated_testing_idls', |
319 ], | 348 ], |
320 'sources': [ | 349 'sources': [ |
321 '<@(interface_idl_files)', | 350 '<@(interface_idl_files)', |
322 ], | 351 ], |
323 'rules': [{ | 352 'rules': [{ |
324 'rule_name': 'binding', | 353 'rule_name': 'binding', |
325 'extension': 'idl', | 354 'extension': 'idl', |
326 'msvs_external_rule': 1, | 355 'msvs_external_rule': 1, |
327 'inputs': [ | 356 'inputs': [ |
357 '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab) | |
328 '<@(idl_compiler_files)', | 358 '<@(idl_compiler_files)', |
359 '<(bindings_output_dir)/parsetab.pickle', | |
329 '<(bindings_output_dir)/cached_jinja_templates.stamp', | 360 '<(bindings_output_dir)/cached_jinja_templates.stamp', |
330 'IDLExtendedAttributes.txt', | 361 'IDLExtendedAttributes.txt', |
331 # If the dependency structure or public interface info (e.g., | 362 # If the dependency structure or public interface info (e.g., |
332 # [ImplementedAs]) changes, we rebuild all files, since we're not | 363 # [ImplementedAs]) changes, we rebuild all files, since we're not |
333 # computing dependencies file-by-file in the build. | 364 # computing dependencies file-by-file in the build. |
334 # This data is generally stable. | 365 # This data is generally stable. |
335 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', | 366 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', |
336 # Further, if any dependency (partial interface or implemented | 367 # Further, if any dependency (partial interface or implemented |
337 # interface) changes, rebuild everything, since every IDL potentially | 368 # interface) changes, rebuild everything, since every IDL potentially |
338 # depends on them, because we're not computing dependencies | 369 # depends on them, because we're not computing dependencies |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
394 'type': 'none', | 425 'type': 'none', |
395 'dependencies': [ | 426 'dependencies': [ |
396 'aggregate_generated_bindings', | 427 'aggregate_generated_bindings', |
397 'event_interfaces', | 428 'event_interfaces', |
398 'individual_generated_bindings', | 429 'individual_generated_bindings', |
399 ], | 430 ], |
400 }, | 431 }, |
401 ################################################################################ | 432 ################################################################################ |
402 ], # targets | 433 ], # targets |
403 } | 434 } |
OLD | NEW |