| OLD | NEW |
| 1 # Copyright (C) 2013 Google Inc. All rights reserved. | 1 # Copyright (C) 2013 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 | 66 |
| 67 # jinja2 is in chromium's third_party directory. | 67 # jinja2 is in chromium's third_party directory. |
| 68 # Insert at 1 so at front to override system libraries, and | 68 # Insert at 1 so at front to override system libraries, and |
| 69 # after path[0] == invoking script dir | 69 # after path[0] == invoking script dir |
| 70 sys.path.insert(1, third_party_dir) | 70 sys.path.insert(1, third_party_dir) |
| 71 import jinja2 | 71 import jinja2 |
| 72 | 72 |
| 73 from idl_definitions import Visitor | 73 from idl_definitions import Visitor |
| 74 import idl_types | 74 import idl_types |
| 75 from idl_types import IdlType | 75 from idl_types import IdlType |
| 76 from v8_attributes import attribute_filters |
| 76 import v8_callback_interface | 77 import v8_callback_interface |
| 77 import v8_dictionary | 78 import v8_dictionary |
| 78 from v8_globals import includes, interfaces | 79 from v8_globals import includes, interfaces |
| 79 import v8_interface | 80 import v8_interface |
| 80 import v8_types | 81 import v8_types |
| 81 import v8_union | 82 import v8_union |
| 82 from v8_utilities import capitalize, cpp_name, v8_class_name | 83 from v8_utilities import capitalize, cpp_name, unique_by, v8_class_name |
| 83 from utilities import KNOWN_COMPONENTS, idl_filename_to_component, is_valid_comp
onent_dependency, is_testing_target, shorten_union_name | 84 from utilities import KNOWN_COMPONENTS, idl_filename_to_component, is_valid_comp
onent_dependency, is_testing_target, shorten_union_name |
| 84 | 85 |
| 85 | 86 |
| 86 def normalize_and_sort_includes(include_paths): | 87 def normalize_and_sort_includes(include_paths): |
| 87 normalized_include_paths = [] | 88 normalized_include_paths = [] |
| 88 for include_path in include_paths: | 89 for include_path in include_paths: |
| 89 match = re.search(r'/gen/blink/(.*)$', posixpath.abspath(include_path)) | 90 match = re.search(r'/gen/blink/(.*)$', posixpath.abspath(include_path)) |
| 90 if match: | 91 if match: |
| 91 include_path = match.group(1) | 92 include_path = match.group(1) |
| 92 normalized_include_paths.append(include_path) | 93 normalized_include_paths.append(include_path) |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 # Bytecode cache is not concurrency-safe unless pre-cached: | 414 # Bytecode cache is not concurrency-safe unless pre-cached: |
| 414 # if pre-cached this is read-only, but writing creates a race condition. | 415 # if pre-cached this is read-only, but writing creates a race condition. |
| 415 bytecode_cache=jinja2.FileSystemBytecodeCache(cache_dir), | 416 bytecode_cache=jinja2.FileSystemBytecodeCache(cache_dir), |
| 416 keep_trailing_newline=True, # newline-terminate generated files | 417 keep_trailing_newline=True, # newline-terminate generated files |
| 417 lstrip_blocks=True, # so can indent control flow tags | 418 lstrip_blocks=True, # so can indent control flow tags |
| 418 trim_blocks=True) | 419 trim_blocks=True) |
| 419 jinja_env.filters.update({ | 420 jinja_env.filters.update({ |
| 420 'blink_capitalize': capitalize, | 421 'blink_capitalize': capitalize, |
| 421 'exposed': exposed_if, | 422 'exposed': exposed_if, |
| 422 'runtime_enabled': runtime_enabled_if, | 423 'runtime_enabled': runtime_enabled_if, |
| 424 'unique_by': unique_by, |
| 423 }) | 425 }) |
| 426 jinja_env.filters.update(attribute_filters()) |
| 424 return jinja_env | 427 return jinja_env |
| 425 | 428 |
| 426 | 429 |
| 427 def generate_indented_conditional(code, conditional): | 430 def generate_indented_conditional(code, conditional): |
| 428 # Indent if statement to level of original code | 431 # Indent if statement to level of original code |
| 429 indent = re.match(' *', code).group(0) | 432 indent = re.match(' *', code).group(0) |
| 430 return ('%sif (%s) {\n' % (indent, conditional) + | 433 return ('%sif (%s) {\n' % (indent, conditional) + |
| 431 ' %s\n' % '\n '.join(code.splitlines()) + | 434 ' %s\n' % '\n '.join(code.splitlines()) + |
| 432 '%s}\n' % indent) | 435 '%s}\n' % indent) |
| 433 | 436 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 467 | 470 |
| 468 # Create a dummy file as output for the build system, | 471 # Create a dummy file as output for the build system, |
| 469 # since filenames of individual cache files are unpredictable and opaque | 472 # since filenames of individual cache files are unpredictable and opaque |
| 470 # (they are hashes of the template path, which varies based on environment) | 473 # (they are hashes of the template path, which varies based on environment) |
| 471 with open(dummy_filename, 'w') as dummy_file: | 474 with open(dummy_filename, 'w') as dummy_file: |
| 472 pass # |open| creates or touches the file | 475 pass # |open| creates or touches the file |
| 473 | 476 |
| 474 | 477 |
| 475 if __name__ == '__main__': | 478 if __name__ == '__main__': |
| 476 sys.exit(main(sys.argv)) | 479 sys.exit(main(sys.argv)) |
| OLD | NEW |