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 # This separate pre-caching step is required to use lex/parse table caching | |
20 # in PLY, since PLY itself does not check if the cache is valid, and may end | |
21 # up using a stale cache if this step hasn't been run to update it. | |
22 # | |
23 # This action's dependencies *is* the cache validation. | |
24 # | |
25 # GN version: //third_party/WebKit/Source/bindings/scripts:cached_lex_yacc_t
ables | |
26 'target_name': 'cached_lex_yacc_tables', | |
27 'type': 'none', | |
28 'actions': [{ | |
29 'action_name': 'cache_lex_yacc_tables', | |
30 'inputs': [ | |
31 '<@(idl_lexer_parser_files)', | |
32 ], | |
33 'outputs': [ | |
34 '<(bindings_scripts_output_dir)/lextab.py', | |
35 '<(bindings_scripts_output_dir)/parsetab.pickle', | |
36 ], | |
37 'action': [ | |
38 'python', | |
39 'blink_idl_parser.py', | |
40 '<(bindings_scripts_output_dir)', | |
41 ], | |
42 'message': 'Caching PLY lex & yacc lex/parse tables', | |
43 }], | |
44 }, | |
45 ################################################################################ | |
46 { | |
47 # A separate pre-caching step is *required* to use bytecode caching in | |
48 # Jinja (which improves speed significantly), as the bytecode cache is | |
49 # not concurrency-safe on write; details in code_generator_v8.py. | |
50 # | |
51 # GN version: //third_party/WebKit/Source/bindings/scripts:cached_jinja_temp
lates | |
52 'target_name': 'cached_jinja_templates', | |
53 'type': 'none', | |
54 'actions': [{ | |
55 'action_name': 'cache_jinja_templates', | |
56 'inputs': [ | |
57 '<@(jinja_module_files)', | |
58 'code_generator_v8.py', | |
59 '<@(code_generator_template_files)', | |
60 ], | |
61 'outputs': [ | |
62 '<(bindings_scripts_output_dir)/cached_jinja_templates.stamp', # Dummy
to track dependency | |
63 ], | |
64 'action': [ | |
65 'python', | |
66 'code_generator_v8.py', | |
67 '<(bindings_scripts_output_dir)', | |
68 '<(bindings_scripts_output_dir)/cached_jinja_templates.stamp', | |
69 ], | |
70 'message': 'Caching bytecode of Jinja templates', | |
71 }], | |
72 }, | |
73 ################################################################################ | |
74 ], # targets | |
75 } | |
OLD | NEW |