Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(855)

Side by Side Diff: Source/bindings/derived_sources.gyp

Issue 17572008: WIP IDL compiler rewrite (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Branch: const + primitive type readonly attributes Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | Source/bindings/scripts/code_generator_idl_reader.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 '<@(python_svg_idl_files)', 48 '<@(python_svg_idl_files)',
49 ], 49 ],
50 'perl_and_python_idl_files': [ 50 'perl_and_python_idl_files': [
51 '<@(deprecated_perl_idl_files)', 51 '<@(deprecated_perl_idl_files)',
52 '<@(python_idl_files)', 52 '<@(python_idl_files)',
53 ], 53 ],
54 'webcore_test_support_idl_files': [ 54 'webcore_test_support_idl_files': [
55 '<@(deprecated_perl_webcore_test_support_idl_files)', 55 '<@(deprecated_perl_webcore_test_support_idl_files)',
56 '<@(python_webcore_test_support_idl_files)', 56 '<@(python_webcore_test_support_idl_files)',
57 ], 57 ],
58 'compiler_module_files': [
59 'scripts/idl_compiler.py',
60 '<(DEPTH)/third_party/ply/lex.py',
61 '<(DEPTH)/third_party/ply/yacc.py',
62 '<(DEPTH)/tools/idl_parser/idl_lexer.py',
63 '<(DEPTH)/tools/idl_parser/idl_node.py',
64 '<(DEPTH)/tools/idl_parser/idl_parser.py',
65 'scripts/blink_idl_lexer.py',
66 'scripts/blink_idl_parser.py',
67 'scripts/code_generator_v8.py',
68 'scripts/idl_definitions.py',
69 'scripts/idl_definitions_builder.py',
70 'scripts/idl_reader.py',
71 'scripts/idl_validator.py',
72 'scripts/interface_dependency_resolver.py',
73 'scripts/v8_attributes.py',
74 'scripts/v8_constructors.py',
75 'scripts/v8_functions.py',
76 'scripts/v8_includes.py',
77 'scripts/v8_interface.py',
78 'scripts/v8_interface_header.py',
79 'scripts/v8_special_accessors.py',
80 'scripts/v8_types.py',
81 'scripts/v8_utilities.py',
82 'scripts/v8_values.py',
83 ],
58 'code_generator_template_files': [ 84 'code_generator_template_files': [
85 'templates/attributes.cpp',
59 'templates/callback_interface.cpp', 86 'templates/callback_interface.cpp',
60 'templates/callback_interface.h', 87 'templates/callback_interface.h',
88 'templates/constants.cpp',
89 'templates/constructors.cpp',
61 'templates/interface.cpp', 90 'templates/interface.cpp',
62 'templates/interface.h', 91 'templates/interface.h',
92 'templates/interface_wip.cpp',
93 'templates/interface_wip.h',
94 'templates/macros.cpp',
63 ], 95 ],
64
65 'bindings_output_dir': '<(SHARED_INTERMEDIATE_DIR)/blink/bindings', 96 'bindings_output_dir': '<(SHARED_INTERMEDIATE_DIR)/blink/bindings',
66 'generated_global_constructors_idl_files': [ 97 'generated_global_constructors_idl_files': [
67 '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl', 98 '<(SHARED_INTERMEDIATE_DIR)/blink/WindowConstructors.idl',
68 '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl', 99 '<(SHARED_INTERMEDIATE_DIR)/blink/WorkerGlobalScopeConstructors.idl',
69 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.i dl', 100 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.i dl',
70 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructor s.idl', 101 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructor s.idl',
71 ], 102 ],
72 103
73 'conditions': [ 104 'conditions': [
74 ['OS=="win" and buildtype=="Official"', { 105 ['OS=="win" and buildtype=="Official"', {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.i dl', 186 '<(SHARED_INTERMEDIATE_DIR)/blink/SharedWorkerGlobalScopeConstructors.i dl',
156 '--dedicatedworkerglobalscope-constructors-file', 187 '--dedicatedworkerglobalscope-constructors-file',
157 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructor s.idl', 188 '<(SHARED_INTERMEDIATE_DIR)/blink/DedicatedWorkerGlobalScopeConstructor s.idl',
158 '--event-names-file', 189 '--event-names-file',
159 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in', 190 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in',
160 '<@(write_file_only_if_changed)', 191 '<@(write_file_only_if_changed)',
161 ], 192 ],
162 'message': 'Resolving partial interfaces dependencies in all IDL files', 193 'message': 'Resolving partial interfaces dependencies in all IDL files',
163 }] 194 }]
164 }, 195 },
196 #{
197 # 'target_name': 'deprecated_perl_bindings_sources',
198 # 'type': 'none',
199 # # The 'binding' rule generates .h files, so mark as hard_dependency, per:
200 # # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Depende ncies
201 # 'hard_dependency': 1,
202 # 'dependencies': [
203 # 'interface_dependencies',
204 # '../core/core_derived_sources.gyp:generate_test_support_idls',
205 # ],
206 # 'sources': [
207 # '<@(deprecated_perl_idl_files)',
208 # '<@(deprecated_perl_webcore_test_support_idl_files)',
209 # ],
210 # 'rules': [{
211 # 'rule_name': 'deprecated_perl_binding',
212 # 'extension': 'idl',
213 # 'msvs_external_rule': 1,
214 # 'inputs': [
215 # 'scripts/deprecated_generate_bindings.pl',
216 # 'scripts/deprecated_code_generator_v8.pm',
217 # 'scripts/deprecated_idl_parser.pm',
218 # 'scripts/deprecated_idl_serializer.pm',
219 # '../core/scripts/preprocessor.pm',
220 # 'scripts/IDLAttributes.txt',
221 # # FIXME: If the dependency structure changes, we rebuild all files,
222 # # since we're not computing dependencies file-by-file in the build.
223 # '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
224 # # FIXME: Similarly, if any partial interface changes, rebuild
225 # # everything, since every IDL potentially depends on them, because
226 # # we're not computing dependencies file-by-file.
227 # #
228 # # If a new partial interface is added, need to regyp to update these
229 # # dependencies, as these are computed statically at gyp runtime.
230 # '<!@pymod_do_main(list_idl_files_with_partial_interface <@(perl_and_p ython_idl_files))',
231 # # Generated IDLs are all partial interfaces, hence everything
232 # # potentially depends on them.
233 # '<@(generated_global_constructors_idl_files)',
234 # ],
235 # 'outputs': [
236 # '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp',
237 # '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h',
238 # ],
239 # 'variables': {
240 # # IDL include paths. The generator will search recursively for IDL
241 # # files under these locations.
242 # 'generator_include_dirs': [
243 # '--include', '../core',
244 # '--include', '../modules',
245 # '--include', '<(SHARED_INTERMEDIATE_DIR)/blink',
246 # ],
247 # # Hook for embedders to specify extra directories to find IDL files.
248 # 'extra_blink_generator_include_dirs%': [],
249 # },
250 # 'msvs_cygwin_shell': 0,
251 # # sanitize-win-build-log.sed uses a regex which matches this command
252 # # line (Perl script + .idl file being processed).
253 # # Update that regex if command line changes (other than changing flags)
254 # 'action': [
255 # '<(perl_exe)',
256 # '-w',
257 # '-Iscripts',
258 # '-I../core/scripts',
259 # '-I<(DEPTH)/third_party/JSON/out/lib/perl5',
260 # 'scripts/deprecated_generate_bindings.pl',
261 # '--outputDir',
262 # '<(bindings_output_dir)',
263 # '--idlAttributesFile',
264 # 'scripts/IDLAttributes.txt',
265 # '<@(generator_include_dirs)',
266 # '<@(extra_blink_generator_include_dirs)',
267 # '--interfaceDependenciesFile',
268 # '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
269 # '--additionalIdlFiles',
270 # '<(deprecated_perl_webcore_test_support_idl_files)',
271 # '<@(preprocessor)',
272 # '<@(write_file_only_if_changed)',
273 # '<(RULE_INPUT_PATH)',
274 # ],
275 # 'message': 'Generating binding from <(RULE_INPUT_PATH)',
276 # }],
277 #},
165 { 278 {
166 'target_name': 'deprecated_perl_bindings_sources', 279 'target_name': 'python_bindings_sources',
167 'type': 'none', 280 'type': 'none',
168 # The 'binding' rule generates .h files, so mark as hard_dependency, per: 281 # The 'binding' rule generates .h files, so mark as hard_dependency, per:
169 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependen cies 282 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependen cies
170 'hard_dependency': 1, 283 'hard_dependency': 1,
171 'dependencies': [ 284 'dependencies': [
172 'interface_dependencies', 285 'interface_dependencies',
173 '../core/core_derived_sources.gyp:generate_test_support_idls', 286 '../core/core_derived_sources.gyp:generate_test_support_idls',
174 ], 287 ],
175 'sources': [ 288 'sources': [
176 '<@(deprecated_perl_idl_files)', 289 '<@(deprecated_perl_idl_files)',
177 '<@(deprecated_perl_webcore_test_support_idl_files)', 290 '<@(deprecated_perl_webcore_test_support_idl_files)',
178 ],
179 'rules': [{
180 'rule_name': 'deprecated_perl_binding',
181 'extension': 'idl',
182 'msvs_external_rule': 1,
183 'inputs': [
184 'scripts/deprecated_generate_bindings.pl',
185 'scripts/deprecated_code_generator_v8.pm',
186 'scripts/deprecated_idl_parser.pm',
187 'scripts/deprecated_idl_serializer.pm',
188 '../core/scripts/preprocessor.pm',
189 'scripts/IDLAttributes.txt',
190 # FIXME: If the dependency structure changes, we rebuild all files,
191 # since we're not computing dependencies file-by-file in the build.
192 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
193 # FIXME: Similarly, if any partial interface changes, rebuild
194 # everything, since every IDL potentially depends on them, because
195 # we're not computing dependencies file-by-file.
196 #
197 # If a new partial interface is added, need to regyp to update these
198 # dependencies, as these are computed statically at gyp runtime.
199 '<!@pymod_do_main(list_idl_files_with_partial_interface <@(perl_and_py thon_idl_files))',
200 # Generated IDLs are all partial interfaces, hence everything
201 # potentially depends on them.
202 '<@(generated_global_constructors_idl_files)',
203 ],
204 'outputs': [
205 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp',
206 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h',
207 ],
208 'variables': {
209 # IDL include paths. The generator will search recursively for IDL
210 # files under these locations.
211 'generator_include_dirs': [
212 '--include', '../core',
213 '--include', '../modules',
214 '--include', '<(SHARED_INTERMEDIATE_DIR)/blink',
215 ],
216 # Hook for embedders to specify extra directories to find IDL files.
217 'extra_blink_generator_include_dirs%': [],
218 },
219 'msvs_cygwin_shell': 0,
220 # sanitize-win-build-log.sed uses a regex which matches this command
221 # line (Perl script + .idl file being processed).
222 # Update that regex if command line changes (other than changing flags)
223 'action': [
224 '<(perl_exe)',
225 '-w',
226 '-Iscripts',
227 '-I../core/scripts',
228 '-I<(DEPTH)/third_party/JSON/out/lib/perl5',
229 'scripts/deprecated_generate_bindings.pl',
230 '--outputDir',
231 '<(bindings_output_dir)',
232 '--idlAttributesFile',
233 'scripts/IDLAttributes.txt',
234 '<@(generator_include_dirs)',
235 '<@(extra_blink_generator_include_dirs)',
236 '--interfaceDependenciesFile',
237 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
238 '--additionalIdlFiles',
239 '<(deprecated_perl_webcore_test_support_idl_files)',
240 '<@(preprocessor)',
241 '<@(write_file_only_if_changed)',
242 '<(RULE_INPUT_PATH)',
243 ],
244 'message': 'Generating binding from <(RULE_INPUT_PATH)',
245 }],
246 },
247 {
248 'target_name': 'python_bindings_sources',
249 'type': 'none',
250 # The 'binding' rule generates .h files, so mark as hard_dependency, per:
251 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependen cies
252 'hard_dependency': 1,
253 'dependencies': [
254 'interface_dependencies',
255 '../core/core_derived_sources.gyp:generate_test_support_idls',
256 ],
257 'sources': [
258 '<@(python_idl_files)', 291 '<@(python_idl_files)',
259 '<@(python_webcore_test_support_idl_files)', 292 '<@(python_webcore_test_support_idl_files)',
260 ], 293 ],
261 'rules': [{ 294 'rules': [{
262 'rule_name': 'python_binding', 295 'rule_name': 'python_binding',
263 'extension': 'idl', 296 'extension': 'idl',
264 'msvs_external_rule': 1, 297 'msvs_external_rule': 1,
265 'inputs': [ 298 'inputs': [
266 'scripts/idl_compiler.py', 299 '<@(compiler_module_files)',
267 '<(DEPTH)/third_party/ply/lex.py', 300 '<@(code_generator_template_files)',
268 '<(DEPTH)/third_party/ply/yacc.py',
269 '<(DEPTH)/tools/idl_parser/idl_lexer.py',
270 '<(DEPTH)/tools/idl_parser/idl_node.py',
271 '<(DEPTH)/tools/idl_parser/idl_parser.py',
272 'scripts/blink_idl_lexer.py',
273 'scripts/blink_idl_parser.py',
274 'scripts/code_generator_v8.py',
275 'scripts/idl_definitions.py',
276 'scripts/idl_definitions_builder.py',
277 'scripts/idl_reader.py',
278 'scripts/idl_validator.py',
279 'scripts/interface_dependency_resolver.py',
280 'scripts/IDLAttributes.txt', 301 'scripts/IDLAttributes.txt',
281 '<@(code_generator_template_files)',
282 # FIXME: If the dependency structure changes, we rebuild all files, 302 # FIXME: If the dependency structure changes, we rebuild all files,
283 # since we're not computing dependencies file-by-file in the build. 303 # since we're not computing dependencies file-by-file in the build.
284 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt', 304 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
285 # FIXME: Similarly, if any partial interface changes, rebuild 305 # FIXME: Similarly, if any partial interface changes, rebuild
286 # everything, since every IDL potentially depends on them, because 306 # everything, since every IDL potentially depends on them, because
287 # we're not computing dependencies file-by-file. 307 # we're not computing dependencies file-by-file.
288 '<!@pymod_do_main(list_idl_files_with_partial_interface <@(perl_and_py thon_idl_files))', 308 '<!@pymod_do_main(list_idl_files_with_partial_interface <@(perl_and_py thon_idl_files))',
289 # Generated IDLs are all partial interfaces, hence everything 309 # Generated IDLs are all partial interfaces, hence everything
290 # potentially depends on them. 310 # potentially depends on them.
291 '<@(generated_global_constructors_idl_files)', 311 '<@(generated_global_constructors_idl_files)',
292 ], 312 ],
293 'outputs': [ 313 'outputs': [
294 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp', 314 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp',
295 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h', 315 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h',
296 ], 316 ],
297 'variables': { 317 'variables': {
298 # IDL include paths. The generator will search recursively for IDL 318 # IDL include paths. The generator will search recursively for IDL
299 # files under these locations. 319 # files under these locations.
320 # FIXME: this should be done by the parser
300 'generator_include_dirs': [ 321 'generator_include_dirs': [
301 '--include', '../core', 322 '--include', '../core',
302 '--include', '../modules', 323 '--include', '../modules',
303 '--include', '<(SHARED_INTERMEDIATE_DIR)/blink', 324 '--include', '<(SHARED_INTERMEDIATE_DIR)/blink',
304 ], 325 ],
305 # Hook for embedders to specify extra directories to find IDL files. 326 # Hook for embedders to specify extra directories to find IDL files.
306 'extra_blink_generator_include_dirs%': [], 327 'extra_blink_generator_include_dirs%': [],
307 }, 328 },
308 'msvs_cygwin_shell': 0, 329 'msvs_cygwin_shell': 0,
309 # sanitize-win-build-log.sed uses a regex which matches this command 330 # sanitize-win-build-log.sed uses a regex which matches this command
(...skipping 16 matching lines...) Expand all
326 '<(RULE_INPUT_PATH)', 347 '<(RULE_INPUT_PATH)',
327 ], 348 ],
328 'message': 'Generating binding from <(RULE_INPUT_PATH)', 349 'message': 'Generating binding from <(RULE_INPUT_PATH)',
329 }], 350 }],
330 }, 351 },
331 { 352 {
332 'target_name': 'bindings_derived_sources', 353 'target_name': 'bindings_derived_sources',
333 'type': 'none', 354 'type': 'none',
334 'dependencies': [ 355 'dependencies': [
335 'interface_dependencies', 356 'interface_dependencies',
336 'deprecated_perl_bindings_sources', 357 # 'deprecated_perl_bindings_sources',
337 'python_bindings_sources', 358 'python_bindings_sources',
338 ], 359 ],
339 'actions': [{ 360 'actions': [{
340 'action_name': 'derived_sources_all_in_one', 361 'action_name': 'derived_sources_all_in_one',
341 'inputs': [ 362 'inputs': [
342 '../core/scripts/action_derivedsourcesallinone.py', 363 '../core/scripts/action_derivedsourcesallinone.py',
343 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt', 364 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
344 ], 365 ],
345 'outputs': [ 366 'outputs': [
346 '<@(derived_sources_aggregate_files)', 367 '<@(derived_sources_aggregate_files)',
347 ], 368 ],
348 'action': [ 369 'action': [
349 'python', 370 'python',
350 '../core/scripts/action_derivedsourcesallinone.py', 371 '../core/scripts/action_derivedsourcesallinone.py',
351 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt', 372 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfaceDependencies.txt',
352 '--', 373 '--',
353 '<@(derived_sources_aggregate_files)', 374 '<@(derived_sources_aggregate_files)',
354 ], 375 ],
355 'message': 'Generating bindings derived sources', 376 'message': 'Generating bindings derived sources',
356 }], 377 }],
357 }, 378 },
358 ], 379 ],
359 } 380 }
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/scripts/code_generator_idl_reader.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698