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

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

Issue 15801003: IDL parser rewrite in Python (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Revised. Created 7 years, 5 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 | Annotate | Revision Log
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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 ], 44 ],
45 'python_idl_files': [ 45 'python_idl_files': [
46 '<@(python_core_idl_files)', 46 '<@(python_core_idl_files)',
47 '<@(python_modules_idl_files)', 47 '<@(python_modules_idl_files)',
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': [
55 '<@(deprecated_perl_webcore_test_support_idl_files)',
56 '<@(python_webcore_test_support_idl_files)',
57 ],
54 58
55 'bindings_output_dir': '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings', 59 'bindings_output_dir': '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
56 'generated_global_constructors_idl_files': [ 60 'generated_global_constructors_idl_files': [
57 '<(SHARED_INTERMEDIATE_DIR)/WindowConstructors.idl', 61 '<(SHARED_INTERMEDIATE_DIR)/WindowConstructors.idl',
58 '<(SHARED_INTERMEDIATE_DIR)/WorkerGlobalScopeConstructors.idl', 62 '<(SHARED_INTERMEDIATE_DIR)/WorkerGlobalScopeConstructors.idl',
59 '<(SHARED_INTERMEDIATE_DIR)/SharedWorkerGlobalScopeConstructors.idl', 63 '<(SHARED_INTERMEDIATE_DIR)/SharedWorkerGlobalScopeConstructors.idl',
60 '<(SHARED_INTERMEDIATE_DIR)/DedicatedWorkerGlobalScopeConstructors.idl' , 64 '<(SHARED_INTERMEDIATE_DIR)/DedicatedWorkerGlobalScopeConstructors.idl' ,
61 ], 65 ],
62 66
63 'conditions': [ 67 'conditions': [
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 '<(SHARED_INTERMEDIATE_DIR)/SharedWorkerGlobalScopeConstructors.idl', 149 '<(SHARED_INTERMEDIATE_DIR)/SharedWorkerGlobalScopeConstructors.idl',
146 '--dedicatedworkerglobalscope-constructors-file', 150 '--dedicatedworkerglobalscope-constructors-file',
147 '<(SHARED_INTERMEDIATE_DIR)/DedicatedWorkerGlobalScopeConstructors.idl' , 151 '<(SHARED_INTERMEDIATE_DIR)/DedicatedWorkerGlobalScopeConstructors.idl' ,
148 '--event-names-file', 152 '--event-names-file',
149 '<(SHARED_INTERMEDIATE_DIR)/EventNames.in', 153 '<(SHARED_INTERMEDIATE_DIR)/EventNames.in',
150 '<@(write_file_only_if_changed)', 154 '<@(write_file_only_if_changed)',
151 ], 155 ],
152 'message': 'Resolving partial interfaces dependencies in all IDL files', 156 'message': 'Resolving partial interfaces dependencies in all IDL files',
153 }] 157 }]
154 }, 158 },
155 { 159 # FIXME (1/4): uncomment before landing!!
156 'target_name': 'deprecated_perl_bindings_sources', 160 #{
157 'type': 'none', 161 # 'target_name': 'deprecated_perl_bindings_sources',
158 # The 'binding' rule generates .h files, so mark as hard_dependency, per: 162 # 'type': 'none',
159 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependen cies 163 # # The 'binding' rule generates .h files, so mark as hard_dependency, per:
160 'hard_dependency': 1, 164 # # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Depende ncies
161 'dependencies': [ 165 # 'hard_dependency': 1,
162 'interface_dependencies', 166 # 'dependencies': [
163 '../core/core_derived_sources.gyp:generate_test_support_idls', 167 # 'interface_dependencies',
164 ], 168 # '../core/core_derived_sources.gyp:generate_test_support_idls',
165 'sources': [ 169 # ],
166 '<@(deprecated_perl_idl_files)', 170 # 'sources': [
167 '<@(deprecated_perl_webcore_test_support_idl_files)', 171 # '<@(deprecated_perl_idl_files)',
168 ], 172 # '<@(deprecated_perl_webcore_test_support_idl_files)',
169 'rules': [{ 173 # ],
170 'rule_name': 'deprecated_perl_binding', 174 # 'rules': [{
171 'extension': 'idl', 175 # 'rule_name': 'deprecated_perl_binding',
172 'msvs_external_rule': 1, 176 # 'extension': 'idl',
173 'inputs': [ 177 # 'msvs_external_rule': 1,
174 'scripts/deprecated_generate_bindings.pl', 178 # 'inputs': [
175 'scripts/deprecated_code_generator_v8.pm', 179 # 'scripts/deprecated_generate_bindings.pl',
176 'scripts/deprecated_idl_parser.pm', 180 # 'scripts/deprecated_code_generator_v8.pm',
177 'scripts/deprecated_idl_serializer.pm', 181 # 'scripts/deprecated_idl_parser.pm',
178 '../core/scripts/preprocessor.pm', 182 # 'scripts/deprecated_idl_serializer.pm',
179 'scripts/IDLAttributes.txt', 183 # '../core/scripts/preprocessor.pm',
180 # FIXME: If the dependency structure changes, we rebuild all files, 184 # 'scripts/IDLAttributes.txt',
181 # since we're not computing dependencies file-by-file in the build. 185 # # FIXME: If the dependency structure changes, we rebuild all files,
182 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt', 186 # # since we're not computing dependencies file-by-file in the build.
183 # FIXME: Similarly, if any partial interface changes, rebuild 187 # '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt',
184 # everything, since every IDL potentially depends on them, because 188 # # FIXME: Similarly, if any partial interface changes, rebuild
185 # we're not computing dependencies file-by-file. 189 # # everything, since every IDL potentially depends on them, because
186 # 190 # # we're not computing dependencies file-by-file.
187 # If a new partial interface is added, need to regyp to update these 191 # #
188 # dependencies, as these are computed statically at gyp runtime. 192 # # If a new partial interface is added, need to regyp to update these
189 '<!@pymod_do_main(list_idl_files_with_partial_interface <@(perl_and_py thon_idl_files))', 193 # # dependencies, as these are computed statically at gyp runtime.
190 # Generated IDLs are all partial interfaces, hence everything 194 # '<!@pymod_do_main(list_idl_files_with_partial_interface <@(perl_and_p ython_idl_files))',
191 # potentially depends on them. 195 # # Generated IDLs are all partial interfaces, hence everything
192 '<@(generated_global_constructors_idl_files)', 196 # # potentially depends on them.
193 ], 197 # '<@(generated_global_constructors_idl_files)',
194 'outputs': [ 198 # ],
195 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp', 199 # 'outputs': [
196 '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h', 200 # '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).cpp',
197 ], 201 # '<(bindings_output_dir)/V8<(RULE_INPUT_ROOT).h',
198 'variables': { 202 # ],
199 # IDL include paths. The generator will search recursively for IDL 203 # 'variables': {
200 # files under these locations. 204 # # IDL include paths. The generator will search recursively for IDL
201 'generator_include_dirs': [ 205 # # files under these locations.
202 '--include', '../core', 206 # 'generator_include_dirs': [
203 '--include', '../modules', 207 # '--include', '../core',
204 '--include', '<(SHARED_INTERMEDIATE_DIR)/webkit', 208 # '--include', '../modules',
205 ], 209 # '--include', '<(SHARED_INTERMEDIATE_DIR)/webkit',
206 # Hook for embedders to specify extra directories to find IDL files. 210 # ],
207 'extra_blink_generator_include_dirs%': [], 211 # # Hook for embedders to specify extra directories to find IDL files.
208 }, 212 # 'extra_blink_generator_include_dirs%': [],
209 'msvs_cygwin_shell': 0, 213 # },
210 # sanitize-win-build-log.sed uses a regex which matches this command 214 # 'msvs_cygwin_shell': 0,
211 # line (Perl script + .idl file being processed). 215 # # sanitize-win-build-log.sed uses a regex which matches this command
212 # Update that regex if command line changes (other than changing flags) 216 # # line (Perl script + .idl file being processed).
213 'action': [ 217 # # Update that regex if command line changes (other than changing flags)
214 '<(perl_exe)', 218 # 'action': [
215 '-w', 219 # '<(perl_exe)',
216 '-Iscripts', 220 # '-w',
217 '-I../core/scripts', 221 # '-Iscripts',
218 '-I../../../JSON/out/lib/perl5', 222 # '-I../core/scripts',
219 'scripts/deprecated_generate_bindings.pl', 223 # '-I../../../JSON/out/lib/perl5',
220 '--outputDir', 224 # 'scripts/deprecated_generate_bindings.pl',
221 '<(bindings_output_dir)', 225 # '--outputDir',
222 '--idlAttributesFile', 226 # '<(bindings_output_dir)',
223 'scripts/IDLAttributes.txt', 227 # '--idlAttributesFile',
224 '<@(generator_include_dirs)', 228 # 'scripts/IDLAttributes.txt',
225 '<@(extra_blink_generator_include_dirs)', 229 # '<@(generator_include_dirs)',
226 '--interfaceDependenciesFile', 230 # '<@(extra_blink_generator_include_dirs)',
227 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt', 231 # '--interfaceDependenciesFile',
228 '--additionalIdlFiles', 232 # '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt',
229 '<(deprecated_perl_webcore_test_support_idl_files)', 233 # '--additionalIdlFiles',
230 '<@(preprocessor)', 234 # '<(deprecated_perl_webcore_test_support_idl_files)',
231 '<@(write_file_only_if_changed)', 235 # '<@(preprocessor)',
232 '<(RULE_INPUT_PATH)', 236 # '<@(write_file_only_if_changed)',
233 ], 237 # '<(RULE_INPUT_PATH)',
234 'message': 'Generating binding from <(RULE_INPUT_PATH)', 238 # ],
235 }], 239 # 'message': 'Generating binding from <(RULE_INPUT_PATH)',
236 }, 240 # }],
241 #},
237 { 242 {
238 'target_name': 'python_bindings_sources', 243 'target_name': 'python_bindings_sources',
239 'type': 'none', 244 'type': 'none',
240 # The 'binding' rule generates .h files, so mark as hard_dependency, per: 245 # The 'binding' rule generates .h files, so mark as hard_dependency, per:
241 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependen cies 246 # https://code.google.com/p/gyp/wiki/InputFormatReference#Linking_Dependen cies
242 'hard_dependency': 1, 247 'hard_dependency': 1,
243 'dependencies': [ 248 'dependencies': [
244 'interface_dependencies', 249 'interface_dependencies',
245 '../core/core_derived_sources.gyp:generate_test_support_idls', 250 '../core/core_derived_sources.gyp:generate_test_support_idls',
246 ], 251 ],
247 'sources': [ 252 'sources': [
248 '<@(python_idl_files)', 253 '<@(python_idl_files)',
249 '<@(python_webcore_test_support_idl_files)', 254 '<@(python_webcore_test_support_idl_files)',
255 # FIXME (2/4): remove perl files from here before landing!!
256 '<@(deprecated_perl_idl_files)',
257 '<@(deprecated_perl_webcore_test_support_idl_files)',
250 ], 258 ],
251 'rules': [{ 259 'rules': [{
252 'rule_name': 'python_binding', 260 'rule_name': 'python_binding',
253 'extension': 'idl', 261 'extension': 'idl',
254 'msvs_external_rule': 1, 262 'msvs_external_rule': 1,
255 'inputs': [ 263 'inputs': [
256 'scripts/idl_compiler.py', 264 'scripts/idl_compiler.py',
265 '../../../ply/lex.py',
266 '../../../ply/yacc.py',
267 '../../../../tools/idl_parser/idl_lexer.py',
268 '../../../../tools/idl_parser/idl_node.py',
269 '../../../../tools/idl_parser/idl_parser.py',
270 'scripts/blink_idl_lexer.py',
271 'scripts/blink_idl_parser.py',
272 'scripts/code_generator_v8.py',
273 'scripts/idl_definitions.py',
274 'scripts/idl_definitions_builder.py',
257 'scripts/idl_reader.py', 275 'scripts/idl_reader.py',
276 'scripts/idl_validator.py',
258 'scripts/interface_dependency_resolver.py', 277 'scripts/interface_dependency_resolver.py',
259 'scripts/code_generator_v8.py',
260 'scripts/IDLAttributes.txt', 278 'scripts/IDLAttributes.txt',
261 # FIXME: If the dependency structure changes, we rebuild all files, 279 # FIXME: If the dependency structure changes, we rebuild all files,
262 # since we're not computing dependencies file-by-file in the build. 280 # since we're not computing dependencies file-by-file in the build.
263 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt', 281 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt',
264 # FIXME: Similarly, if any partial interface changes, rebuild 282 # FIXME: Similarly, if any partial interface changes, rebuild
265 # everything, since every IDL potentially depends on them, because 283 # everything, since every IDL potentially depends on them, because
266 # we're not computing dependencies file-by-file. 284 # we're not computing dependencies file-by-file.
267 '<!@pymod_do_main(list_idl_files_with_partial_interface <@(perl_and_py thon_idl_files))', 285 '<!@pymod_do_main(list_idl_files_with_partial_interface <@(perl_and_py thon_idl_files))',
268 # Generated IDLs are all partial interfaces, hence everything 286 # Generated IDLs are all partial interfaces, hence everything
269 # potentially depends on them. 287 # potentially depends on them.
(...skipping 23 matching lines...) Expand all
293 'scripts/idl_compiler.py', 311 'scripts/idl_compiler.py',
294 '--output-dir', 312 '--output-dir',
295 '<(bindings_output_dir)', 313 '<(bindings_output_dir)',
296 '--idl-attributes-file', 314 '--idl-attributes-file',
297 'scripts/IDLAttributes.txt', 315 'scripts/IDLAttributes.txt',
298 '<@(generator_include_dirs)', 316 '<@(generator_include_dirs)',
299 '<@(extra_blink_generator_include_dirs)', 317 '<@(extra_blink_generator_include_dirs)',
300 '--interface-dependencies-file', 318 '--interface-dependencies-file',
301 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt', 319 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt',
302 '--additional-idl-files', 320 '--additional-idl-files',
303 '<(python_webcore_test_support_idl_files)', 321 '<(webcore_test_support_idl_files)',
304 '<@(write_file_only_if_changed)', 322 '<@(write_file_only_if_changed)',
323 '--dump-json-and-pickle', # FIXME (3/4): remove before landing!!
305 '<(RULE_INPUT_PATH)', 324 '<(RULE_INPUT_PATH)',
306 ], 325 ],
307 'message': 'Generating binding from <(RULE_INPUT_PATH)', 326 'message': 'Generating binding from <(RULE_INPUT_PATH)',
308 }], 327 }],
309 }, 328 },
310 { 329 {
311 'target_name': 'bindings_derived_sources', 330 'target_name': 'bindings_derived_sources',
312 'type': 'none', 331 'type': 'none',
313 'dependencies': [ 332 'dependencies': [
314 'interface_dependencies', 333 'interface_dependencies',
315 'deprecated_perl_bindings_sources', 334 # FIXME (4/4): uncomment before landing!!
335 # 'deprecated_perl_bindings_sources',
316 'python_bindings_sources', 336 'python_bindings_sources',
317 ], 337 ],
318 'actions': [{ 338 'actions': [{
319 'action_name': 'derived_sources_all_in_one', 339 'action_name': 'derived_sources_all_in_one',
320 'inputs': [ 340 'inputs': [
321 '../core/scripts/action_derivedsourcesallinone.py', 341 '../core/scripts/action_derivedsourcesallinone.py',
322 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt', 342 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt',
323 ], 343 ],
324 'outputs': [ 344 'outputs': [
325 '<@(derived_sources_aggregate_files)', 345 '<@(derived_sources_aggregate_files)',
326 ], 346 ],
327 'action': [ 347 'action': [
328 'python', 348 'python',
329 '../core/scripts/action_derivedsourcesallinone.py', 349 '../core/scripts/action_derivedsourcesallinone.py',
330 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt', 350 '<(SHARED_INTERMEDIATE_DIR)/InterfaceDependencies.txt',
331 '--', 351 '--',
332 '<@(derived_sources_aggregate_files)', 352 '<@(derived_sources_aggregate_files)',
333 ], 353 ],
334 'message': 'Generating bindings derived sources', 354 'message': 'Generating bindings derived sources',
335 }], 355 }],
336 }, 356 },
337 ], 357 ],
338 } 358 }
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/scripts/blink_idl_lexer.py » ('j') | Source/bindings/scripts/blink_idl_lexer.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698