OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 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 import os.path | 5 import os.path |
6 import sys | 6 import sys |
7 import optparse | 7 import optparse |
8 import collections | 8 import collections |
9 import functools | 9 import functools |
10 try: | 10 try: |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 | 322 |
323 | 323 |
324 def resolve_type(protocol, prop): | 324 def resolve_type(protocol, prop): |
325 if "$ref" in prop: | 325 if "$ref" in prop: |
326 return protocol.type_definitions[prop["$ref"]] | 326 return protocol.type_definitions[prop["$ref"]] |
327 if prop["type"] == "array": | 327 if prop["type"] == "array": |
328 return wrap_array_definition(resolve_type(protocol, prop["items"])) | 328 return wrap_array_definition(resolve_type(protocol, prop["items"])) |
329 return protocol.type_definitions[prop["type"]] | 329 return protocol.type_definitions[prop["type"]] |
330 | 330 |
331 | 331 |
| 332 def new_style(domain): |
| 333 domains = [] |
| 334 return domain["domain"] in domains |
| 335 |
| 336 |
332 def join_arrays(dict, keys): | 337 def join_arrays(dict, keys): |
333 result = [] | 338 result = [] |
334 for key in keys: | 339 for key in keys: |
335 if key in dict: | 340 if key in dict: |
336 result += dict[key] | 341 result += dict[key] |
337 return result | 342 return result |
338 | 343 |
339 | 344 |
340 def has_disable(commands): | 345 def has_disable(commands): |
341 for command in commands: | 346 for command in commands: |
342 if command["name"] == "disable": | 347 if command["name"] == "disable" and (not ("handlers" in command) or "ren
derer" in command["handlers"]): |
343 return True | 348 return True |
344 return False | 349 return False |
345 | 350 |
346 | 351 |
347 def format_include(header): | 352 def format_include(header): |
348 return "\"" + header + "\"" if header[0] not in "<\"" else header | 353 return "\"" + header + "\"" if header[0] not in "<\"" else header |
349 | 354 |
350 | 355 |
351 def read_protocol_file(file_name, json_api): | 356 def read_protocol_file(file_name, json_api): |
352 input_file = open(file_name, "r") | 357 input_file = open(file_name, "r") |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 for domain in protocol.json_api["domains"]: | 419 for domain in protocol.json_api["domains"]: |
415 class_name = domain["domain"] | 420 class_name = domain["domain"] |
416 template_context = { | 421 template_context = { |
417 "config": config, | 422 "config": config, |
418 "domain": domain, | 423 "domain": domain, |
419 "join_arrays": join_arrays, | 424 "join_arrays": join_arrays, |
420 "resolve_type": functools.partial(resolve_type, protocol), | 425 "resolve_type": functools.partial(resolve_type, protocol), |
421 "type_definition": functools.partial(type_definition, protocol), | 426 "type_definition": functools.partial(type_definition, protocol), |
422 "has_disable": has_disable, | 427 "has_disable": has_disable, |
423 "format_include": format_include, | 428 "format_include": format_include, |
| 429 "new_style": new_style, |
424 } | 430 } |
425 | 431 |
426 if domain["domain"] in protocol.generate_domains: | 432 if domain["domain"] in protocol.generate_domains: |
427 outputs[os.path.join(config.protocol.output, class_name + ".h")] = h
_template.render(template_context) | 433 outputs[os.path.join(config.protocol.output, class_name + ".h")] = h
_template.render(template_context) |
428 outputs[os.path.join(config.protocol.output, class_name + ".cpp")] =
cpp_template.render(template_context) | 434 outputs[os.path.join(config.protocol.output, class_name + ".cpp")] =
cpp_template.render(template_context) |
429 if domain["has_exports"]: | 435 if domain["has_exports"]: |
430 outputs[os.path.join(config.exported.output, class_name + ".h")]
= exported_template.render(template_context) | 436 outputs[os.path.join(config.exported.output, class_name + ".h")]
= exported_template.render(template_context) |
431 if domain["domain"] in protocol.imported_domains and domain["has_exports
"]: | 437 if domain["domain"] in protocol.imported_domains and domain["has_exports
"]: |
432 outputs[os.path.join(config.protocol.output, class_name + ".h")] = i
mported_template.render(template_context) | 438 outputs[os.path.join(config.protocol.output, class_name + ".h")] = i
mported_template.render(template_context) |
433 | 439 |
434 if config.lib: | 440 if config.lib: |
435 template_context = { | 441 template_context = { |
436 "config": config, | 442 "config": config, |
437 "format_include": format_include, | 443 "format_include": format_include, |
438 } | 444 } |
439 | 445 |
440 lib_templates_dir = os.path.join(module_path, "lib") | 446 lib_templates_dir = os.path.join(module_path, "lib") |
441 # Note these should be sorted in the right order. | 447 # Note these should be sorted in the right order. |
442 # TODO(dgozman): sort them programmatically based on commented includes. | 448 # TODO(dgozman): sort them programmatically based on commented includes. |
443 lib_h_templates = [ | 449 lib_h_templates = [ |
444 "Collections_h.template", | 450 "Collections_h.template", |
445 "ErrorSupport_h.template", | 451 "ErrorSupport_h.template", |
446 "Values_h.template", | 452 "Values_h.template", |
447 "Object_h.template", | 453 "Object_h.template", |
448 "ValueConversions_h.template", | 454 "ValueConversions_h.template", |
449 "Maybe_h.template", | 455 "Maybe_h.template", |
450 "Array_h.template", | 456 "Array_h.template", |
451 "BackendCallback_h.template", | |
452 "DispatcherBase_h.template", | 457 "DispatcherBase_h.template", |
453 "Parser_h.template", | 458 "Parser_h.template", |
454 ] | 459 ] |
455 | 460 |
456 lib_cpp_templates = [ | 461 lib_cpp_templates = [ |
457 "Protocol_cpp.template", | 462 "Protocol_cpp.template", |
458 "ErrorSupport_cpp.template", | 463 "ErrorSupport_cpp.template", |
459 "Values_cpp.template", | 464 "Values_cpp.template", |
460 "Object_cpp.template", | 465 "Object_cpp.template", |
461 "DispatcherBase_cpp.template", | 466 "DispatcherBase_cpp.template", |
(...skipping 28 matching lines...) Expand all Loading... |
490 if up_to_date: | 495 if up_to_date: |
491 sys.exit() | 496 sys.exit() |
492 | 497 |
493 for file_name, content in outputs.iteritems(): | 498 for file_name, content in outputs.iteritems(): |
494 out_file = open(file_name, "w") | 499 out_file = open(file_name, "w") |
495 out_file.write(content) | 500 out_file.write(content) |
496 out_file.close() | 501 out_file.close() |
497 | 502 |
498 | 503 |
499 main() | 504 main() |
OLD | NEW |