| OLD | NEW |
| 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 Loading... |
| 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 + "/" |
| OLD | NEW |