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 # ../../.. == Source | 11 # ../../.. == Source |
12 '../../../bindings/bindings.gypi', | 12 '../../../bindings/bindings.gypi', |
13 '../../../bindings/modules/idl.gypi', | 13 '../../../bindings/modules/idl.gypi', |
14 '../../../bindings/modules/modules.gypi', | 14 '../../../bindings/modules/modules.gypi', |
15 '../../../bindings/scripts/scripts.gypi', | 15 '../../../bindings/scripts/scripts.gypi', |
16 # Need to know core idl files list to generate parital interfaces | |
17 # defined in modules. | |
18 '../../../core/core.gypi', | |
16 '../../../modules/modules.gypi', | 19 '../../../modules/modules.gypi', |
17 'generated.gypi', | 20 'generated.gypi', |
18 ], | 21 ], |
19 | 22 |
20 'targets': [ | 23 'targets': [ |
21 ################################################################################ | 24 ################################################################################ |
22 { | 25 { |
23 'target_name': 'bindings_modules_v8_generated_individual', | 26 'target_name': 'bindings_modules_v8_generated_individual', |
24 'type': 'none', | 27 'type': 'none', |
25 # The 'binding' rule generates .h files, so mark as hard_dependency, per: | 28 # The 'binding' rule generates .h files, so mark as hard_dependency, per: |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
89 'inputs': [ | 92 'inputs': [ |
90 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | 93 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', |
91 '<(modules_idl_files_list)', | 94 '<(modules_idl_files_list)', |
92 ], | 95 ], |
93 'outputs': [ | 96 'outputs': [ |
94 '<@(bindings_modules_v8_generated_aggregate_files)', | 97 '<@(bindings_modules_v8_generated_aggregate_files)', |
95 ], | 98 ], |
96 'action': [ | 99 'action': [ |
97 'python', | 100 'python', |
98 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | 101 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', |
102 '--component-dir', | |
99 'modules', | 103 'modules', |
104 '--idl-files-list', | |
100 '<(modules_idl_files_list)', | 105 '<(modules_idl_files_list)', |
101 '--', | |
102 '<@(bindings_modules_v8_generated_aggregate_files)', | 106 '<@(bindings_modules_v8_generated_aggregate_files)', |
103 ], | 107 ], |
104 'message': 'Generating aggregate generated modules V8 bindings files', | 108 'message': 'Generating aggregate generated modules V8 bindings files', |
105 }], | 109 }], |
106 }, | 110 }, |
107 ################################################################################ | 111 ################################################################################ |
108 { | 112 { |
109 # GN version: //third_party/WebKit/Source/bindings/modules/v8:bindings_modul es_dictionary_impl_generated | 113 # GN version: //third_party/WebKit/Source/bindings/modules/v8:bindings_modul es_dictionary_impl_generated |
110 # http://crbug.com/358074; See comments on | 114 # http://crbug.com/358074; See comments on |
111 # 'bindings_core_v8_generated_individual' target | 115 # 'bindings_core_v8_generated_individual' target |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
148 '--write-file-only-if-changed', | 152 '--write-file-only-if-changed', |
149 '<(write_file_only_if_changed)', | 153 '<(write_file_only_if_changed)', |
150 '--generate-dictionary-impl', | 154 '--generate-dictionary-impl', |
151 '<(modules_dictionary_idl_files_list)', | 155 '<(modules_dictionary_idl_files_list)', |
152 ], | 156 ], |
153 'message': 'Generating modules IDL dictionary impl classes', | 157 'message': 'Generating modules IDL dictionary impl classes', |
154 }], | 158 }], |
155 }, | 159 }, |
156 ################################################################################ | 160 ################################################################################ |
157 { | 161 { |
162 'target_name': 'bindings_modules_v8_generated_partial_individual', | |
163 'type': 'none', | |
164 # The 'partial_binding' rule generates .h files, so mark as hard_dependency, per: | |
165 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependenci es | |
166 'hard_dependency': 1, | |
167 'dependencies': [ | |
168 '../../core/generated.gyp:core_global_constructors_idls', | |
169 '../generated.gyp:modules_global_constructors_idls', | |
170 '../generated.gyp:interfaces_info', | |
171 '<(bindings_scripts_dir)/scripts.gyp:cached_jinja_templates', | |
172 '<(bindings_scripts_dir)/scripts.gyp:cached_lex_yacc_tables', | |
173 ], | |
174 # We need to generate partial interface code for normal modules and also for testing. | |
175 # i.e. parital interface Internals. | |
176 'sources': [ | |
177 '<@(core_idl_with_modules_dependency_files)', | |
178 '<@(webcore_testing_idl_with_modules_dependency_files)', | |
179 ], | |
180 'rules': [{ | |
181 'rule_name': 'partial_binding', | |
182 'extension': 'idl', | |
183 'msvs_external_rule': 1, | |
184 'inputs': [ | |
185 '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab) | |
186 '<@(idl_compiler_files)', | |
187 '<(bindings_scripts_output_dir)/lextab.py', | |
188 '<(bindings_scripts_output_dir)/parsetab.pickle', | |
189 '<(bindings_scripts_output_dir)/cached_jinja_templates.stamp', | |
190 '<(bindings_dir)/IDLExtendedAttributes.txt', | |
191 # If the dependency structure or public interface info (e.g., | |
192 # [ImplementedAs]) changes, we rebuild all files, since we're not | |
193 # computing dependencies file-by-file in the build. | |
194 # This data is generally stable. | |
195 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', | |
196 # Further, if any dependency (partial interface or implemented | |
197 # interface) changes, rebuild everything, since every IDL potentially | |
198 # depends on them, because we're not computing dependencies | |
199 # file-by-file. | |
200 # FIXME: This is too conservative, and causes excess rebuilds: | |
201 # compute this file-by-file. http://crbug.com/341748 | |
202 '<@(all_dependency_idl_files)', | |
203 '<@(webcore_testing_idl_files)', | |
204 ], | |
205 'outputs': [ | |
206 '<(bindings_modules_v8_output_dir)/V8<(RULE_INPUT_ROOT)Partial.cpp', | |
207 '<(bindings_modules_v8_output_dir)/V8<(RULE_INPUT_ROOT)Partial.h', | |
208 ], | |
209 # sanitize-win-build-log.sed uses a regex which matches this command | |
210 # line (Python script + .idl file being processed). | |
211 # Update that regex if command line changes (other than changing flags) | |
bashi
2014/10/10 09:48:11
I'm not sure, but you might need to take a look at
tasak
2014/10/10 11:43:40
Done.
| |
212 'action': [ | |
213 'python', | |
214 '-S', # skip 'import site' to speed up startup | |
215 '<(bindings_scripts_dir)/idl_compiler.py', | |
216 '--cache-dir', | |
217 '<(bindings_scripts_output_dir)', | |
218 '--output-dir', | |
219 '<(bindings_modules_v8_output_dir)', | |
220 '--interfaces-info', | |
221 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', | |
222 '--write-file-only-if-changed', | |
223 '<(write_file_only_if_changed)', | |
224 '--generate-partial', | |
225 '<(RULE_INPUT_PATH)', | |
226 ], | |
227 'message': 'Generating partial binding from <(RULE_INPUT_PATH)', | |
228 }], | |
229 }, | |
230 ################################################################################ | |
231 { | |
232 'target_name': 'bindings_modules_v8_generated_partial_aggregate', | |
233 'type': 'none', | |
234 'actions': [{ | |
235 'action_name': 'generate_aggregate_bindings_modules_v8_partial', | |
236 'inputs': [ | |
237 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | |
238 '<(core_idl_with_modules_dependency_files_list)', | |
239 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', | |
240 ], | |
241 'outputs': [ | |
242 '<@(bindings_modules_v8_generated_partial_aggregate_files)', | |
243 ], | |
244 'action': [ | |
245 'python', | |
246 '<(bindings_scripts_dir)/aggregate_generated_bindings.py', | |
247 '--component-dir', | |
248 'modules', | |
249 '--idl-files-list', | |
250 '<(core_idl_with_modules_dependency_files_list)', | |
251 '--partial', | |
252 '1', | |
bashi
2014/10/10 09:48:11
It's difficult to understand what '1' means here.
tasak
2014/10/10 11:43:40
Done.
| |
253 '--cache-dir', | |
254 '<(bindings_scripts_output_dir)', | |
255 '--interfaces-info', | |
256 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', | |
257 '<@(bindings_modules_v8_generated_partial_aggregate_files)', | |
258 ], | |
259 'message': 'Generating aggregate generated modules V8 partial bindings fil es', | |
260 }], | |
261 }, | |
262 ################################################################################ | |
263 { | |
264 'target_name': 'bindings_modules_v8_generated_init_partial', | |
265 'type': 'none', | |
266 'actions': [{ | |
267 'action_name': 'generate_bindings_modules_v8_init_partial', | |
268 'inputs': [ | |
269 '<(bindings_scripts_dir)/generate_init_partial_interfaces.py', | |
270 '<(core_idl_with_modules_dependency_files_list)', | |
271 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', | |
272 ], | |
273 'outputs': [ | |
274 '<(bindings_modules_v8_output_dir)/InitModulesForPartialInterfaces.cpp', | |
275 ], | |
276 'action': [ | |
277 'python', | |
278 '<(bindings_scripts_dir)/generate_init_partial_interfaces.py', | |
279 '--idl-files-list', | |
280 '<(core_idl_with_modules_dependency_files_list)', | |
281 '--interfaces-info', | |
282 '<(bindings_modules_output_dir)/InterfacesInfoModules.pickle', | |
283 '--cache-directory', | |
284 '<(bindings_scripts_output_dir)', | |
285 '--output', | |
286 '<(bindings_modules_v8_output_dir)/InitModulesForPartialInterfaces.cpp', | |
287 '--write-file-only-if-changed', | |
288 '<(write_file_only_if_changed)', | |
289 ], | |
290 }], | |
291 }, | |
292 ################################################################################ | |
293 { | |
158 'target_name': 'bindings_modules_v8_generated', | 294 'target_name': 'bindings_modules_v8_generated', |
159 'type': 'none', | 295 'type': 'none', |
160 'dependencies': [ | 296 'dependencies': [ |
161 'bindings_modules_dictionary_impl_generated', | 297 'bindings_modules_dictionary_impl_generated', |
162 'bindings_modules_v8_generated_aggregate', | 298 'bindings_modules_v8_generated_aggregate', |
163 'bindings_modules_v8_generated_individual', | 299 'bindings_modules_v8_generated_individual', |
300 'bindings_modules_v8_generated_partial_aggregate', | |
301 'bindings_modules_v8_generated_partial_individual', | |
302 'bindings_modules_v8_generated_init_partial', | |
bashi
2014/10/10 09:48:11
nit: alphabetical order
tasak
2014/10/10 11:43:40
Done.
| |
164 ], | 303 ], |
165 }, | 304 }, |
166 ################################################################################ | 305 ################################################################################ |
167 ], # targets | 306 ], # targets |
168 } | 307 } |
OLD | NEW |