OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 # Generate IDL bindings for modules, plus aggregate bindings files. | 5 # Generate IDL bindings for modules, plus aggregate bindings files. |
6 # | 6 # |
7 # Design doc: http://www.chromium.org/developers/design-documents/idl-build | 7 # Design doc: http://www.chromium.org/developers/design-documents/idl-build |
8 | 8 |
9 { | 9 { |
10 'includes': [ | 10 'includes': [ |
11 '../../../modules/modules.gypi', | 11 '../../../modules/modules.gypi', |
12 '../../bindings.gypi', | 12 '../../bindings.gypi', |
13 '../../core/idl.gypi', | 13 '../../core/idl.gypi', |
14 '../../scripts/scripts.gypi', | 14 '../../scripts/scripts.gypi', |
15 '../idl.gypi', | 15 '../idl.gypi', |
| 16 '../modules.gypi', |
16 'generated.gypi', | 17 'generated.gypi', |
17 ], | 18 ], |
18 | 19 |
19 'variables': { | 20 'variables': { |
20 # IDL file lists; see: http://www.chromium.org/developers/web-idl-interfaces | 21 # IDL file lists; see: http://www.chromium.org/developers/web-idl-interfaces |
21 # Write lists of main IDL files to a file, so that the command lines don't | 22 # Write lists of main IDL files to a file, so that the command lines don't |
22 # exceed OS length limits. | 23 # exceed OS length limits. |
23 'modules_idl_files_list': '<|(modules_idl_files_list.tmp <@(modules_idl_file
s))', | 24 'modules_idl_files_list': '<|(modules_idl_files_list.tmp <@(modules_idl_file
s))', |
24 | 25 |
25 # Interface IDL files: generate individual bindings (includes testing) | 26 # Interface IDL files: generate individual bindings (includes testing) |
(...skipping 19 matching lines...) Expand all Loading... |
45 'sources': [ | 46 'sources': [ |
46 '<@(modules_interface_idl_files)', | 47 '<@(modules_interface_idl_files)', |
47 ], | 48 ], |
48 'rules': [{ | 49 'rules': [{ |
49 'rule_name': 'binding', | 50 'rule_name': 'binding', |
50 'extension': 'idl', | 51 'extension': 'idl', |
51 'msvs_external_rule': 1, | 52 'msvs_external_rule': 1, |
52 'inputs': [ | 53 'inputs': [ |
53 '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab) | 54 '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab) |
54 '<@(idl_compiler_files)', | 55 '<@(idl_compiler_files)', |
55 '<(bindings_output_dir)/lextab.py', | 56 '<(bindings_scripts_output_dir)/lextab.py', |
56 '<(bindings_output_dir)/parsetab.pickle', | 57 '<(bindings_scripts_output_dir)/parsetab.pickle', |
57 '<(bindings_output_dir)/cached_jinja_templates.stamp', | 58 '<(bindings_scripts_output_dir)/cached_jinja_templates.stamp', |
58 '<(bindings_dir)/IDLExtendedAttributes.txt', | 59 '<(bindings_dir)/IDLExtendedAttributes.txt', |
59 # If the dependency structure or public interface info (e.g., | 60 # If the dependency structure or public interface info (e.g., |
60 # [ImplementedAs]) changes, we rebuild all files, since we're not | 61 # [ImplementedAs]) changes, we rebuild all files, since we're not |
61 # computing dependencies file-by-file in the build. | 62 # computing dependencies file-by-file in the build. |
62 # This data is generally stable. | 63 # This data is generally stable. |
63 '<(blink_output_dir)/InterfacesInfo.pickle', | 64 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', |
64 # Further, if any dependency (partial interface or implemented | 65 # Further, if any dependency (partial interface or implemented |
65 # interface) changes, rebuild everything, since every IDL potentially | 66 # interface) changes, rebuild everything, since every IDL potentially |
66 # depends on them, because we're not computing dependencies | 67 # depends on them, because we're not computing dependencies |
67 # file-by-file. | 68 # file-by-file. |
68 # FIXME: This is too conservative, and causes excess rebuilds: | 69 # FIXME: This is too conservative, and causes excess rebuilds: |
69 # compute this file-by-file. http://crbug.com/341748 | 70 # compute this file-by-file. http://crbug.com/341748 |
70 '<@(all_dependency_idl_files)', | 71 '<@(all_dependency_idl_files)', |
71 ], | 72 ], |
72 'outputs': [ | 73 'outputs': [ |
73 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp', | 74 '<(bindings_modules_v8_output_dir)/V8<(RULE_INPUT_ROOT).cpp', |
74 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h', | 75 '<(bindings_modules_v8_output_dir)/V8<(RULE_INPUT_ROOT).h', |
75 ], | 76 ], |
76 # sanitize-win-build-log.sed uses a regex which matches this command | 77 # sanitize-win-build-log.sed uses a regex which matches this command |
77 # line (Python script + .idl file being processed). | 78 # line (Python script + .idl file being processed). |
78 # Update that regex if command line changes (other than changing flags) | 79 # Update that regex if command line changes (other than changing flags) |
79 'action': [ | 80 'action': [ |
80 'python', | 81 'python', |
81 '-S', # skip 'import site' to speed up startup | 82 '-S', # skip 'import site' to speed up startup |
82 '<(bindings_scripts_dir)/idl_compiler.py', | 83 '<(bindings_scripts_dir)/idl_compiler.py', |
| 84 '--cache-dir', |
| 85 '<(bindings_scripts_output_dir)', |
83 '--output-dir', | 86 '--output-dir', |
84 '<(bindings_output_dir)', | 87 '<(bindings_modules_v8_output_dir)', |
85 '--interfaces-info', | 88 '--interfaces-info', |
86 '<(blink_output_dir)/InterfacesInfo.pickle', | 89 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', |
87 '--write-file-only-if-changed', | 90 '--write-file-only-if-changed', |
88 '<(write_file_only_if_changed)', | 91 '<(write_file_only_if_changed)', |
89 '<(RULE_INPUT_PATH)', | 92 '<(RULE_INPUT_PATH)', |
90 ], | 93 ], |
91 'message': 'Generating binding from <(RULE_INPUT_PATH)', | 94 'message': 'Generating binding from <(RULE_INPUT_PATH)', |
92 }], | 95 }], |
93 }, | 96 }, |
94 ################################################################################ | 97 ################################################################################ |
95 { | 98 { |
96 'target_name': 'bindings_modules_generated_aggregate', | 99 'target_name': 'bindings_modules_generated_aggregate', |
97 'type': 'none', | 100 'type': 'none', |
98 'actions': [{ | 101 'actions': [{ |
99 'action_name': 'generate_aggregate_bindings_modules', | 102 'action_name': 'generate_aggregate_bindings_modules', |
100 'inputs': [ | 103 'inputs': [ |
101 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | 104 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', |
102 '<(modules_idl_files_list)', | 105 '<(modules_idl_files_list)', |
103 ], | 106 ], |
104 'outputs': [ | 107 'outputs': [ |
105 '<@(bindings_modules_generated_aggregate_files)', | 108 '<@(bindings_modules_generated_aggregate_files)', |
106 ], | 109 ], |
107 'action': [ | 110 'action': [ |
108 'python', | 111 'python', |
109 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | 112 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', |
| 113 'modules', |
110 '<(modules_idl_files_list)', | 114 '<(modules_idl_files_list)', |
111 '--', | 115 '--', |
112 '<@(bindings_modules_generated_aggregate_files)', | 116 '<@(bindings_modules_generated_aggregate_files)', |
113 ], | 117 ], |
114 'message': 'Generating aggregate generated modules bindings files', | 118 'message': 'Generating aggregate generated modules bindings files', |
115 }], | 119 }], |
116 }, | 120 }, |
117 ################################################################################ | 121 ################################################################################ |
118 { | 122 { |
119 'target_name': 'bindings_modules_generated', | 123 'target_name': 'bindings_modules_generated', |
120 'type': 'none', | 124 'type': 'none', |
121 'dependencies': [ | 125 'dependencies': [ |
122 'bindings_modules_generated_aggregate', | 126 'bindings_modules_generated_aggregate', |
123 'bindings_modules_generated_individual', | 127 'bindings_modules_generated_individual', |
124 ], | 128 ], |
125 }, | 129 }, |
126 ################################################################################ | 130 ################################################################################ |
127 ], # targets | 131 ], # targets |
128 } | 132 } |
OLD | NEW |