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

Side by Side Diff: mojo/public/bindings/generators/mojom_cpp_generator.py

Issue 159983003: Fix a bug with mojom imports where 2 imports with the same namespace would (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 10 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 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 """Generates C++ source files from a mojom.Module.""" 5 """Generates C++ source files from a mojom.Module."""
6 6
7 from generate import mojom 7 from generate import mojom
8 from generate import mojom_pack 8 from generate import mojom_pack
9 from generate import mojom_generator 9 from generate import mojom_generator
10 10
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 "is_string_kind": mojom_generator.IsStringKind, 126 "is_string_kind": mojom_generator.IsStringKind,
127 "is_array_kind": lambda kind: isinstance(kind, mojom.Array), 127 "is_array_kind": lambda kind: isinstance(kind, mojom.Array),
128 "is_struct_with_handles": IsStructWithHandles, 128 "is_struct_with_handles": IsStructWithHandles,
129 "struct_size": lambda ps: ps.GetTotalSize() + _HEADER_SIZE, 129 "struct_size": lambda ps: ps.GetTotalSize() + _HEADER_SIZE,
130 "struct_from_method": mojom_generator.GetStructFromMethod, 130 "struct_from_method": mojom_generator.GetStructFromMethod,
131 "stylize_method": mojom_generator.StudlyCapsToCamel, 131 "stylize_method": mojom_generator.StudlyCapsToCamel,
132 "substitute_namespace": SubstituteNamespace, 132 "substitute_namespace": SubstituteNamespace,
133 "verify_token_type": mojom_generator.VerifyTokenType, 133 "verify_token_type": mojom_generator.VerifyTokenType,
134 } 134 }
135 135
136 @UseJinja("cpp_templates/module.h.tmpl", filters=cpp_filters) 136 def GetJinjaExports(self):
137 def GenerateModuleHeader(self):
138 return { 137 return {
139 "module_name": self.module.name, 138 "module_name": self.module.name,
140 "namespace": self.module.namespace, 139 "namespace": self.module.namespace,
141 "imports": self.module.imports, 140 "imports": self.module.imports,
142 "kinds": self.module.kinds, 141 "kinds": self.module.kinds,
143 "enums": self.module.enums, 142 "enums": self.module.enums,
144 "structs": self.GetStructs(), 143 "structs": self.GetStructs(),
145 "interfaces": self.module.interfaces, 144 "interfaces": self.module.interfaces,
146 "include_prefix": self.GetIncludePrefix(), 145 "include_prefix": self.GetIncludePrefix(),
147 } 146 }
148 147
148 @UseJinja("cpp_templates/module.h.tmpl", filters=cpp_filters)
149 def GenerateModuleHeader(self):
150 return self.GetJinjaExports()
151
149 @UseJinja("cpp_templates/module_internal.h.tmpl", filters=cpp_filters) 152 @UseJinja("cpp_templates/module_internal.h.tmpl", filters=cpp_filters)
150 def GenerateModuleInternalHeader(self): 153 def GenerateModuleInternalHeader(self):
151 return { 154 return self.GetJinjaExports()
152 "module_name": self.module.name,
153 "namespace": self.module.namespace,
154 "imports": self.module.imports,
155 "kinds": self.module.kinds,
156 "enums": self.module.enums,
157 "structs": self.GetStructs(),
158 "interfaces": self.module.interfaces,
159 "include_prefix": self.GetIncludePrefix(),
160 }
161 155
162 @UseJinja("cpp_templates/module.cc.tmpl", filters=cpp_filters) 156 @UseJinja("cpp_templates/module.cc.tmpl", filters=cpp_filters)
163 def GenerateModuleSource(self): 157 def GenerateModuleSource(self):
164 return { 158 return self.GetJinjaExports()
165 "module_name": self.module.name,
166 "namespace": self.module.namespace,
167 "imports": self.module.imports,
168 "kinds": self.module.kinds,
169 "enums": self.module.enums,
170 "structs": self.GetStructs(),
171 "interfaces": self.module.interfaces,
172 "include_prefix": self.GetIncludePrefix(),
173 }
174 159
175 def GenerateFiles(self): 160 def GenerateFiles(self):
176 self.Write(self.GenerateModuleHeader(), "%s.h" % self.module.name) 161 self.Write(self.GenerateModuleHeader(), "%s.h" % self.module.name)
177 self.Write(self.GenerateModuleInternalHeader(), 162 self.Write(self.GenerateModuleInternalHeader(),
178 "%s_internal.h" % self.module.name) 163 "%s_internal.h" % self.module.name)
179 self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name) 164 self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name)
180 165
181 def GetIncludePrefix(self): 166 def GetIncludePrefix(self):
182 if not self.header_dir: 167 if not self.header_dir:
183 return "" 168 return ""
184 if self.header_dir[-1] == "/": 169 if self.header_dir[-1] == "/":
185 return self.header_dir 170 return self.header_dir
186 return self.header_dir + "/" 171 return self.header_dir + "/"
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698