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 26 matching lines...) Expand all Loading... |
37 'includes': [ | 37 'includes': [ |
38 '../build/scripts/scripts.gypi', | 38 '../build/scripts/scripts.gypi', |
39 '../build/win/precompile.gypi', | 39 '../build/win/precompile.gypi', |
40 '../build/scripts/scripts.gypi', | 40 '../build/scripts/scripts.gypi', |
41 '../core/core.gypi', | 41 '../core/core.gypi', |
42 '../modules/modules.gypi', | 42 '../modules/modules.gypi', |
43 'bindings.gypi', | 43 'bindings.gypi', |
44 ], | 44 ], |
45 | 45 |
46 'variables': { | 46 'variables': { |
47 # For details, see: http://www.chromium.org/developers/web-idl-interfaces | 47 # IDL file lists; see: http://www.chromium.org/developers/web-idl-interfaces |
48 # | 48 # |
49 # Interface IDL files / Dependency IDL files | 49 # Interface IDL files / Dependency IDL files |
50 # Interface IDL files: generate individual bindings (includes testing) | 50 # Interface IDL files: generate individual bindings (includes testing) |
51 'interface_idl_files': [ | 51 'interface_idl_files': [ |
52 '<@(static_interface_idl_files)', | 52 '<@(static_interface_idl_files)', |
53 '<@(generated_interface_idl_files)', | 53 '<@(generated_interface_idl_files)', |
54 ], | 54 ], |
55 # Dependency IDL files: don't generate individual bindings, but do process | 55 # Dependency IDL files: don't generate individual bindings, but do process |
56 # in IDL dependency computation, and count as build dependencies | 56 # in IDL dependency computation, and count as build dependencies |
57 'dependency_idl_files': [ | 57 'dependency_idl_files': [ |
58 '<@(static_dependency_idl_files)', | 58 '<@(static_dependency_idl_files)', |
59 '<@(generated_dependency_idl_files)', | 59 '<@(generated_dependency_idl_files)', |
60 ], | 60 ], |
61 # Main interface IDL files (excluding dependencies and testing) | 61 # Main interface IDL files (excluding dependencies and testing) |
62 # are included as properties on global objects, and in aggregate bindings | 62 # are included as properties on global objects, and in aggregate bindings |
63 'main_interface_idl_files': [ | 63 'main_interface_idl_files': [ |
64 '<@(core_idl_files)', | 64 '<@(core_idl_files)', |
65 '<@(modules_idl_files)', | 65 '<@(modules_idl_files)', |
66 ], | 66 ], |
| 67 # Write list of main IDL files to a file, so that the command line doesn't |
| 68 # exceed OS length limits. |
| 69 'main_interface_idl_files_list': '<|(main_interface_idl_files_list.tmp <@(ma
in_interface_idl_files))', |
67 | 70 |
68 # Static IDL files / Generated IDL files | 71 # Static IDL files / Generated IDL files |
69 # Paths need to be passed separately for static and generated files, as | 72 # Paths need to be passed separately for static and generated files, as |
70 # static files are listed in a temporary file (b/c too long for command | 73 # static files are listed in a temporary file (b/c too long for command |
71 # line), but generated files must be passed at the command line, as they are | 74 # line), but generated files must be passed at the command line, as their |
72 # not present at GYP time, when the temporary file is generated | 75 # paths are not fixed at GYP time, when the temporary file is generated, |
| 76 # because their paths depend on the build directory, which varies. |
73 'static_idl_files': [ | 77 'static_idl_files': [ |
74 '<@(static_interface_idl_files)', | 78 '<@(static_interface_idl_files)', |
75 '<@(static_dependency_idl_files)', | 79 '<@(static_dependency_idl_files)', |
76 ], | 80 ], |
| 81 'static_idl_files_list': '<|(static_idl_files_list.tmp <@(static_idl_files))
', |
77 'generated_idl_files': [ | 82 'generated_idl_files': [ |
78 '<@(generated_interface_idl_files)', | 83 '<@(generated_interface_idl_files)', |
79 '<@(generated_dependency_idl_files)', | 84 '<@(generated_dependency_idl_files)', |
80 ], | 85 ], |
81 | 86 |
82 # Static IDL files | 87 # Static IDL files |
83 'static_interface_idl_files': [ | 88 'static_interface_idl_files': [ |
84 '<@(core_idl_files)', | 89 '<@(core_idl_files)', |
85 '<@(webcore_testing_idl_files)', | 90 '<@(webcore_testing_idl_files)', |
86 '<@(modules_idl_files)', | 91 '<@(modules_idl_files)', |
(...skipping 13 matching lines...) Expand all Loading... |
100 ], | 105 ], |
101 | 106 |
102 'generated_global_constructors_idl_files': [ | 107 'generated_global_constructors_idl_files': [ |
103 '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl', | 108 '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl', |
104 '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl', | 109 '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl', |
105 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.idl'
, | 110 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.idl'
, |
106 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors.i
dl', | 111 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors.i
dl', |
107 '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl', | 112 '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl', |
108 ], | 113 ], |
109 | 114 |
| 115 |
110 # Python source | 116 # Python source |
111 'jinja_module_files': [ | 117 'jinja_module_files': [ |
112 # jinja2/__init__.py contains version string, so sufficient for package | 118 # jinja2/__init__.py contains version string, so sufficient for package |
113 '<(DEPTH)/third_party/jinja2/__init__.py', | 119 '<(DEPTH)/third_party/jinja2/__init__.py', |
114 '<(DEPTH)/third_party/markupsafe/__init__.py', # jinja2 dep | 120 '<(DEPTH)/third_party/markupsafe/__init__.py', # jinja2 dep |
115 ], | 121 ], |
116 'idl_compiler_files': [ | 122 'idl_compiler_files': [ |
117 'scripts/idl_compiler.py', | 123 'scripts/idl_compiler.py', |
118 # PLY (Python Lex-Yacc) | 124 # PLY (Python Lex-Yacc) |
119 '<(DEPTH)/third_party/ply/lex.py', | 125 '<(DEPTH)/third_party/ply/lex.py', |
(...skipping 25 matching lines...) Expand all Loading... |
145 'code_generator_template_files': [ | 151 'code_generator_template_files': [ |
146 'templates/attributes.cpp', | 152 'templates/attributes.cpp', |
147 'templates/callback_interface.cpp', | 153 'templates/callback_interface.cpp', |
148 'templates/callback_interface.h', | 154 'templates/callback_interface.h', |
149 'templates/interface_base.cpp', | 155 'templates/interface_base.cpp', |
150 'templates/interface.cpp', | 156 'templates/interface.cpp', |
151 'templates/interface.h', | 157 'templates/interface.h', |
152 'templates/methods.cpp', | 158 'templates/methods.cpp', |
153 ], | 159 ], |
154 | 160 |
| 161 |
155 'bindings_output_dir': '<(SHARED_INTERMEDIATE_DIR)/blink/bindings', | 162 'bindings_output_dir': '<(SHARED_INTERMEDIATE_DIR)/blink/bindings', |
156 | 163 |
157 'conditions': [ | 164 'conditions': [ |
158 # The bindings generator can skip writing generated files if they are | 165 # The bindings generator can skip writing generated files if they are |
159 # identical to the already existing file, which avoids recompilation. | 166 # identical to the already existing file, which avoids recompilation. |
160 # However, a dependency (earlier build step) having a newer timestamp than | 167 # However, a dependency (earlier build step) having a newer timestamp than |
161 # an output (later build step) confuses some build systems, so only use | 168 # an output (later build step) confuses some build systems, so only use |
162 # this on ninja, which explicitly supports this use case (gyp turns all | 169 # this on ninja, which explicitly supports this use case (gyp turns all |
163 # actions into ninja restat rules). | 170 # actions into ninja restat rules). |
164 ['"<(GENERATOR)"=="ninja"', { | 171 ['"<(GENERATOR)"=="ninja"', { |
165 'write_file_only_if_changed': '--write-file-only-if-changed 1', | 172 'write_file_only_if_changed': '--write-file-only-if-changed 1', |
166 }, { | 173 }, { |
167 'write_file_only_if_changed': '--write-file-only-if-changed 0', | 174 'write_file_only_if_changed': '--write-file-only-if-changed 0', |
168 }], | 175 }], |
169 ], | 176 ], |
170 }, | 177 }, |
171 | 178 |
172 'targets': [{ | 179 'targets': [ |
| 180 ################################################################################ |
| 181 { |
173 'target_name': 'global_constructors_idls', | 182 'target_name': 'global_constructors_idls', |
174 'type': 'none', | 183 'type': 'none', |
175 'actions': [{ | 184 'actions': [{ |
176 'action_name': 'generate_global_constructors_idls', | 185 'action_name': 'generate_global_constructors_idls', |
177 'variables': { | |
178 # Write list of IDL files to a file, so that the command line doesn't | |
179 # exceed OS length limits. | |
180 # Only includes main IDL files (exclude dependencies and testing, | |
181 # which should not appear on global objects). | |
182 'main_interface_idl_files_list': '<|(main_interface_idl_files_list.tmp <
@(main_interface_idl_files))', | |
183 }, | |
184 'inputs': [ | 186 'inputs': [ |
185 'scripts/generate_global_constructors.py', | 187 'scripts/generate_global_constructors.py', |
186 'scripts/utilities.py', | 188 'scripts/utilities.py', |
| 189 # Only includes main IDL files (exclude dependencies and testing, |
| 190 # which should not appear on global objects). |
187 '<(main_interface_idl_files_list)', | 191 '<(main_interface_idl_files_list)', |
188 '<@(main_interface_idl_files)', | 192 '<@(main_interface_idl_files)', |
189 ], | 193 ], |
190 'outputs': [ | 194 'outputs': [ |
191 '<@(generated_global_constructors_idl_files)', | 195 '<@(generated_global_constructors_idl_files)', |
192 ], | 196 ], |
193 'action': [ | 197 'action': [ |
194 'python', | 198 'python', |
195 'scripts/generate_global_constructors.py', | 199 'scripts/generate_global_constructors.py', |
196 '--idl-files-list', | 200 '--idl-files-list', |
197 '<(main_interface_idl_files_list)', | 201 '<(main_interface_idl_files_list)', |
198 '<@(write_file_only_if_changed)', | 202 '<@(write_file_only_if_changed)', |
199 '--', | 203 '--', |
200 'Window', | 204 'Window', |
201 '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl', | 205 '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl', |
202 'WorkerGlobalScope', | 206 'WorkerGlobalScope', |
203 '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl', | 207 '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl', |
204 'SharedWorkerGlobalScope', | 208 'SharedWorkerGlobalScope', |
205 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.id
l', | 209 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.id
l', |
206 'DedicatedWorkerGlobalScope', | 210 'DedicatedWorkerGlobalScope', |
207 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors
.idl', | 211 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructors
.idl', |
208 'ServiceWorkerGlobalScope', | 212 'ServiceWorkerGlobalScope', |
209 '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl', | 213 '<(SHARED_INTERMEDIATE_DIR)/ServiceWorkerGlobalScopeConstructors.idl', |
210 ], | 214 ], |
211 'message': 'Generating IDL files for constructors on global objects', | 215 'message': 'Generating IDL files for constructors on global objects', |
212 }] | 216 }] |
213 }, | 217 }, |
| 218 ################################################################################ |
214 { | 219 { |
215 'target_name': 'interfaces_info', | 220 'target_name': 'interfaces_info', |
216 'type': 'none', | 221 'type': 'none', |
217 'dependencies': [ | 222 'dependencies': [ |
| 223 # Generated IDLs |
218 'global_constructors_idls', | 224 'global_constructors_idls', |
219 '../core/core_generated.gyp:generated_testing_idls', | 225 '../core/core_generated.gyp:generated_testing_idls', |
220 ], | 226 ], |
221 'actions': [{ | 227 'actions': [{ |
222 'action_name': 'compute_interfaces_info', | 228 'action_name': 'compute_interfaces_info', |
223 'variables': { | |
224 # Write list of static IDL files to a file, so that the command line | |
225 # doesn't exceed OS length limits. | |
226 # Generated IDL files cannot be included, as their path depends on the | |
227 # build directory, and must instead be passed as command line arguments. | |
228 'idl_files_list': '<|(idl_files_list.tmp <@(static_idl_files))', | |
229 }, | |
230 'inputs': [ | 229 'inputs': [ |
231 'scripts/compute_interfaces_info.py', | 230 'scripts/compute_interfaces_info.py', |
232 'scripts/utilities.py', | 231 'scripts/utilities.py', |
233 '<(idl_files_list)', | 232 '<(static_idl_files_list)', |
234 '<@(static_idl_files)', | 233 '<@(static_idl_files)', |
235 '<@(generated_idl_files)', | 234 '<@(generated_idl_files)', |
236 ], | 235 ], |
237 'outputs': [ | 236 'outputs': [ |
238 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', | 237 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', |
239 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in', | 238 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in', |
240 ], | 239 ], |
241 'action': [ | 240 'action': [ |
242 'python', | 241 'python', |
243 'scripts/compute_interfaces_info.py', | 242 'scripts/compute_interfaces_info.py', |
244 '--idl-files-list', | 243 '--idl-files-list', |
245 '<(idl_files_list)', | 244 '<(static_idl_files_list)', |
246 '--interfaces-info-file', | 245 '--interfaces-info-file', |
247 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', | 246 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', |
248 '--event-names-file', | 247 '--event-names-file', |
249 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in', | 248 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in', |
250 '<@(write_file_only_if_changed)', | 249 '<@(write_file_only_if_changed)', |
251 '--', | 250 '--', |
| 251 # Generated files must be passed at command line |
252 '<@(generated_idl_files)', | 252 '<@(generated_idl_files)', |
253 ], | 253 ], |
254 'message': 'Computing global information about IDL files, and generating l
ist of Event interfaces', | 254 'message': 'Computing global information about IDL files, and generating l
ist of Event interfaces', |
255 }] | 255 }] |
256 }, | 256 }, |
257 { | 257 ################################################################################ |
258 # A separate pre-caching step is *required* to use bytecode caching in | 258 { |
259 # Jinja (which improves speed significantly), as the bytecode cache is | 259 # A separate pre-caching step is *required* to use bytecode caching in |
260 # not concurrency-safe on write; details in code_generator_v8.py. | 260 # Jinja (which improves speed significantly), as the bytecode cache is |
261 'target_name': 'cached_jinja_templates', | 261 # not concurrency-safe on write; details in code_generator_v8.py. |
262 'type': 'none', | 262 'target_name': 'cached_jinja_templates', |
263 'actions': [{ | 263 'type': 'none', |
264 'action_name': 'cache_jinja_templates', | 264 'actions': [{ |
265 'inputs': [ | 265 'action_name': 'cache_jinja_templates', |
266 '<@(jinja_module_files)', | 266 'inputs': [ |
267 'scripts/code_generator_v8.py', | 267 '<@(jinja_module_files)', |
268 '<@(code_generator_template_files)', | 268 'scripts/code_generator_v8.py', |
269 ], | 269 '<@(code_generator_template_files)', |
270 'outputs': [ | |
271 '<(bindings_output_dir)/cached_jinja_templates.stamp', # Dummy to tra
ck dependency | |
272 ], | |
273 'action': [ | |
274 'python', | |
275 'scripts/code_generator_v8.py', | |
276 '<(bindings_output_dir)', | |
277 '<(bindings_output_dir)/cached_jinja_templates.stamp', | |
278 ], | |
279 'message': 'Caching bytecode of Jinja templates', | |
280 }], | |
281 }, | |
282 { | |
283 'target_name': 'individual_generated_bindings', | |
284 'type': 'none', | |
285 # The 'binding' rule generates .h files, so mark as hard_dependency, per: | |
286 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependen
cies | |
287 'hard_dependency': 1, | |
288 'dependencies': [ | |
289 'interfaces_info', | |
290 'cached_jinja_templates', | |
291 '../core/core_generated.gyp:generated_testing_idls', | |
292 ], | 270 ], |
293 'sources': [ | 271 'outputs': [ |
294 '<@(interface_idl_files)', | 272 '<(bindings_output_dir)/cached_jinja_templates.stamp', # Dummy to track
dependency |
295 ], | 273 ], |
296 'rules': [{ | 274 'action': [ |
297 'rule_name': 'binding', | 275 'python', |
298 'extension': 'idl', | 276 'scripts/code_generator_v8.py', |
299 'msvs_external_rule': 1, | 277 '<(bindings_output_dir)', |
300 'inputs': [ | 278 '<(bindings_output_dir)/cached_jinja_templates.stamp', |
301 '<@(idl_compiler_files)', | |
302 '<(bindings_output_dir)/cached_jinja_templates.stamp', | |
303 'IDLExtendedAttributes.txt', | |
304 # If the dependency structure or public interface info (e.g., | |
305 # [ImplementedAs]) changes, we rebuild all files, since we're not | |
306 # computing dependencies file-by-file in the build. | |
307 # This data is generally stable. | |
308 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', | |
309 # Further, if any dependency (partial interface or implemented | |
310 # interface) changes, rebuild everything, since every IDL potentially | |
311 # depends on them, because we're not computing dependencies | |
312 # file-by-file. | |
313 # FIXME: This is too conservative, and causes excess rebuilds: | |
314 # compute this file-by-file. http://crbug.com/341748 | |
315 '<@(dependency_idl_files)', | |
316 ], | |
317 'outputs': [ | |
318 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp', | |
319 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h', | |
320 ], | |
321 # sanitize-win-build-log.sed uses a regex which matches this command | |
322 # line (Python script + .idl file being processed). | |
323 # Update that regex if command line changes (other than changing flags) | |
324 'action': [ | |
325 'python', | |
326 'scripts/idl_compiler.py', | |
327 '--output-dir', | |
328 '<(bindings_output_dir)', | |
329 '--idl-attributes-file', | |
330 'IDLExtendedAttributes.txt', | |
331 '--interfaces-info', | |
332 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', | |
333 '<@(write_file_only_if_changed)', | |
334 '<(RULE_INPUT_PATH)', | |
335 ], | |
336 'message': 'Generating binding from <(RULE_INPUT_PATH)', | |
337 }], | |
338 }, | |
339 { | |
340 'target_name': 'aggregate_generated_bindings', | |
341 'type': 'none', | |
342 'actions': [{ | |
343 'action_name': 'generate_aggregate_generated_bindings', | |
344 'variables': { | |
345 # Write list of IDL files to a file, so that the command line doesn't | |
346 # exceed OS length limits. | |
347 'main_interface_idl_files_list': '<|(main_interface_idl_files_list.tmp
<@(main_interface_idl_files))', | |
348 }, | |
349 'inputs': [ | |
350 'scripts/aggregate_generated_bindings.py', | |
351 '<(main_interface_idl_files_list)', | |
352 ], | |
353 'outputs': [ | |
354 '<@(aggregate_generated_bindings_files)', | |
355 ], | |
356 'action': [ | |
357 'python', | |
358 'scripts/aggregate_generated_bindings.py', | |
359 '<(main_interface_idl_files_list)', | |
360 '--', | |
361 '<@(aggregate_generated_bindings_files)', | |
362 ], | |
363 'message': 'Generating aggregate generated bindings files', | |
364 }], | |
365 }, | |
366 { | |
367 'target_name': 'generated_bindings', | |
368 'type': 'none', | |
369 'dependencies': [ | |
370 'aggregate_generated_bindings', | |
371 'individual_generated_bindings', | |
372 ], | 279 ], |
373 }, | 280 'message': 'Caching bytecode of Jinja templates', |
374 ], | 281 }], |
| 282 }, |
| 283 ################################################################################ |
| 284 { |
| 285 'target_name': 'individual_generated_bindings', |
| 286 'type': 'none', |
| 287 # The 'binding' rule generates .h files, so mark as hard_dependency, per: |
| 288 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependenci
es |
| 289 'hard_dependency': 1, |
| 290 'dependencies': [ |
| 291 'interfaces_info', |
| 292 'cached_jinja_templates', |
| 293 '../core/core_generated.gyp:generated_testing_idls', |
| 294 ], |
| 295 'sources': [ |
| 296 '<@(interface_idl_files)', |
| 297 ], |
| 298 'rules': [{ |
| 299 'rule_name': 'binding', |
| 300 'extension': 'idl', |
| 301 'msvs_external_rule': 1, |
| 302 'inputs': [ |
| 303 '<@(idl_compiler_files)', |
| 304 '<(bindings_output_dir)/cached_jinja_templates.stamp', |
| 305 'IDLExtendedAttributes.txt', |
| 306 # If the dependency structure or public interface info (e.g., |
| 307 # [ImplementedAs]) changes, we rebuild all files, since we're not |
| 308 # computing dependencies file-by-file in the build. |
| 309 # This data is generally stable. |
| 310 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', |
| 311 # Further, if any dependency (partial interface or implemented |
| 312 # interface) changes, rebuild everything, since every IDL potentially |
| 313 # depends on them, because we're not computing dependencies |
| 314 # file-by-file. |
| 315 # FIXME: This is too conservative, and causes excess rebuilds: |
| 316 # compute this file-by-file. http://crbug.com/341748 |
| 317 '<@(dependency_idl_files)', |
| 318 ], |
| 319 'outputs': [ |
| 320 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp', |
| 321 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h', |
| 322 ], |
| 323 # sanitize-win-build-log.sed uses a regex which matches this command |
| 324 # line (Python script + .idl file being processed). |
| 325 # Update that regex if command line changes (other than changing flags) |
| 326 'action': [ |
| 327 'python', |
| 328 'scripts/idl_compiler.py', |
| 329 '--output-dir', |
| 330 '<(bindings_output_dir)', |
| 331 '--idl-attributes-file', |
| 332 'IDLExtendedAttributes.txt', |
| 333 '--interfaces-info', |
| 334 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', |
| 335 '<@(write_file_only_if_changed)', |
| 336 '<(RULE_INPUT_PATH)', |
| 337 ], |
| 338 'message': 'Generating binding from <(RULE_INPUT_PATH)', |
| 339 }], |
| 340 }, |
| 341 ################################################################################ |
| 342 { |
| 343 'target_name': 'aggregate_generated_bindings', |
| 344 'type': 'none', |
| 345 'actions': [{ |
| 346 'action_name': 'generate_aggregate_generated_bindings', |
| 347 'inputs': [ |
| 348 'scripts/aggregate_generated_bindings.py', |
| 349 # Only includes main IDL files (exclude dependencies and testing, |
| 350 # for which bindings are not included in aggregate bindings). |
| 351 '<(main_interface_idl_files_list)', |
| 352 ], |
| 353 'outputs': [ |
| 354 '<@(aggregate_generated_bindings_files)', |
| 355 ], |
| 356 'action': [ |
| 357 'python', |
| 358 'scripts/aggregate_generated_bindings.py', |
| 359 '<(main_interface_idl_files_list)', |
| 360 '--', |
| 361 '<@(aggregate_generated_bindings_files)', |
| 362 ], |
| 363 'message': 'Generating aggregate generated bindings files', |
| 364 }], |
| 365 }, |
| 366 ################################################################################ |
| 367 { |
| 368 'target_name': 'generated_bindings', |
| 369 'type': 'none', |
| 370 'dependencies': [ |
| 371 'aggregate_generated_bindings', |
| 372 'individual_generated_bindings', |
| 373 ], |
| 374 }, |
| 375 ################################################################################ |
| 376 ], # targets |
375 } | 377 } |
OLD | NEW |