| OLD | NEW |
| (Empty) | |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 # Pre-caching steps used internally by the IDL compiler |
| 6 # |
| 7 # Design doc: http://www.chromium.org/developers/design-documents/idl-build |
| 8 |
| 9 { |
| 10 'includes': [ |
| 11 'scripts.gypi', |
| 12 '../bindings.gypi', |
| 13 '../templates/templates.gypi', |
| 14 ], |
| 15 |
| 16 'targets': [ |
| 17 ################################################################################ |
| 18 { |
| 19 # A separate pre-caching step is *not required* to use lex/parse table |
| 20 # caching in PLY, as the caches are concurrency-safe. |
| 21 # However, pre-caching ensures that all compiler processes use the cached |
| 22 # files (hence maximizing speed), instead of early processes building the |
| 23 # tables themselves (as they've not yet been written when they start). |
| 24 'target_name': 'cached_lex_yacc_tables', |
| 25 'type': 'none', |
| 26 'actions': [{ |
| 27 'action_name': 'cache_lex_yacc_tables', |
| 28 'inputs': [ |
| 29 '<@(idl_lexer_parser_files)', |
| 30 ], |
| 31 'outputs': [ |
| 32 '<(bindings_output_dir)/lextab.py', |
| 33 '<(bindings_output_dir)/parsetab.pickle', |
| 34 ], |
| 35 'action': [ |
| 36 'python', |
| 37 'blink_idl_parser.py', |
| 38 '<(bindings_output_dir)', |
| 39 ], |
| 40 'message': 'Caching PLY lex & yacc lex/parse tables', |
| 41 }], |
| 42 }, |
| 43 ################################################################################ |
| 44 { |
| 45 # A separate pre-caching step is *required* to use bytecode caching in |
| 46 # Jinja (which improves speed significantly), as the bytecode cache is |
| 47 # not concurrency-safe on write; details in code_generator_v8.py. |
| 48 'target_name': 'cached_jinja_templates', |
| 49 'type': 'none', |
| 50 'actions': [{ |
| 51 'action_name': 'cache_jinja_templates', |
| 52 'inputs': [ |
| 53 '<@(jinja_module_files)', |
| 54 'code_generator_v8.py', |
| 55 '<@(code_generator_template_files)', |
| 56 ], |
| 57 'outputs': [ |
| 58 '<(bindings_output_dir)/cached_jinja_templates.stamp', # Dummy to track
dependency |
| 59 ], |
| 60 'action': [ |
| 61 'python', |
| 62 'code_generator_v8.py', |
| 63 '<(bindings_output_dir)', |
| 64 '<(bindings_output_dir)/cached_jinja_templates.stamp', |
| 65 ], |
| 66 'message': 'Caching bytecode of Jinja templates', |
| 67 }], |
| 68 }, |
| 69 ################################################################################ |
| 70 ], # targets |
| 71 } |
| OLD | NEW |