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

Side by Side Diff: Source/core/scripts/in_generator.py

Issue 15095002: Use jinja2 for make_runtime_features and make_internal_runtime_flags (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Updated for Eric's suggestions Created 7 years, 7 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
OLDNEW
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 12 matching lines...) Expand all
23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 28
29 import os.path 29 import os.path
30 import shutil 30 import shutil
31 31
32 from in_file import InFile 32 from in_file import InFile
33 import template_expander
33 34
34 35
35 class Writer(object): 36 class Writer(object):
36 # Subclasses should override. 37 # Subclasses should override.
37 class_name = None 38 class_name = None
38 defaults = None 39 defaults = None
39 valid_values = None 40 valid_values = None
40 default_parameters = None 41 default_parameters = None
41 42
42 def __init__(self, in_file_path): 43 def __init__(self, in_file_path):
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 # The build system should ensure our output directory exists, but just i n case. 78 # The build system should ensure our output directory exists, but just i n case.
78 directory = os.path.dirname(file_path) 79 directory = os.path.dirname(file_path)
79 if not os.path.exists(directory): 80 if not os.path.exists(directory):
80 os.makedirs(directory) 81 os.makedirs(directory)
81 82
82 with open(file_path, "w") as file_to_write: 83 with open(file_path, "w") as file_to_write:
83 file_to_write.write(contents) 84 file_to_write.write(contents)
84 85
85 def _write_file(self, output_dir, generator, file_name): 86 def _write_file(self, output_dir, generator, file_name):
86 contents = generator() 87 contents = generator()
88 if type(contents) is dict:
89 contents = template_expander.apply_template(file_name + ".tmpl", con tents)
87 if not contents: 90 if not contents:
88 return 91 return
89 path = os.path.join(output_dir, file_name) 92 path = os.path.join(output_dir, file_name)
90 self._forcibly_create_text_file_at_path_with_contents(path, contents) 93 self._forcibly_create_text_file_at_path_with_contents(path, contents)
91 94
92 def write_header(self, output_dir): 95 def write_header(self, output_dir):
93 self._write_file(output_dir, self.generate_header, self.class_name + '.h ') 96 self._write_file(output_dir, self.generate_header, self.class_name + '.h ')
94 97
95 def write_headers_header(self, output_dir): 98 def write_headers_header(self, output_dir):
96 self._write_file(output_dir, self.generate_headers_header, self.class_na me + 'Headers.h') 99 self._write_file(output_dir, self.generate_headers_header, self.class_na me + 'Headers.h')
(...skipping 19 matching lines...) Expand all
116 print "USAGE: %i INPUT_FILE [OUTPUT_DIRECTORY]" % script_name 119 print "USAGE: %i INPUT_FILE [OUTPUT_DIRECTORY]" % script_name
117 exit(1) 120 exit(1)
118 output_dir = args[1] if len(args) > 1 else os.getcwd() 121 output_dir = args[1] if len(args) > 1 else os.getcwd()
119 122
120 writer = self._writer_class(args[0]) 123 writer = self._writer_class(args[0])
121 writer.write_header(output_dir) 124 writer.write_header(output_dir)
122 writer.write_headers_header(output_dir) 125 writer.write_headers_header(output_dir)
123 writer.write_interfaces_header(output_dir) 126 writer.write_interfaces_header(output_dir)
124 writer.write_implmentation(output_dir) 127 writer.write_implmentation(output_dir)
125 writer.write_idl(output_dir) 128 writer.write_idl(output_dir)
OLDNEW
« no previous file with comments | « Source/core/core.gyp/core_derived_sources.gyp ('k') | Source/core/scripts/make_internal_runtime_flags.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698