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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 "cpp_type": GetCppType, | 104 "cpp_type": GetCppType, |
105 "cpp_wrapper_type": GetCppWrapperType, | 105 "cpp_wrapper_type": GetCppWrapperType, |
106 "get_pad": mojom_pack.GetPad, | 106 "get_pad": mojom_pack.GetPad, |
107 "is_handle_kind": mojom_generator.IsHandleKind, | 107 "is_handle_kind": mojom_generator.IsHandleKind, |
108 "is_object_kind": mojom_generator.IsObjectKind, | 108 "is_object_kind": mojom_generator.IsObjectKind, |
109 "is_string_kind": mojom_generator.IsStringKind, | 109 "is_string_kind": mojom_generator.IsStringKind, |
110 "is_array_kind": lambda kind: isinstance(kind, mojom.Array), | 110 "is_array_kind": lambda kind: isinstance(kind, mojom.Array), |
111 "is_struct_with_handles": IsStructWithHandles, | 111 "is_struct_with_handles": IsStructWithHandles, |
112 "struct_size": lambda ps: ps.GetTotalSize() + _HEADER_SIZE, | 112 "struct_size": lambda ps: ps.GetTotalSize() + _HEADER_SIZE, |
113 "struct_from_method": mojom_generator.GetStructFromMethod, | 113 "struct_from_method": mojom_generator.GetStructFromMethod, |
| 114 "struct_by_name": mojom_generator.GetStructByName, |
114 "stylize_method": mojom_generator.StudlyCapsToCamel, | 115 "stylize_method": mojom_generator.StudlyCapsToCamel, |
| 116 "verify_token_type": mojom_generator.VerifyTokenType, |
115 } | 117 } |
116 | 118 |
117 @UseJinja("cpp_templates/module.h.tmpl", filters=cpp_filters) | 119 @UseJinja("cpp_templates/module.h.tmpl", filters=cpp_filters) |
118 def GenerateModuleHeader(self): | 120 def GenerateModuleHeader(self): |
119 return { | 121 return { |
120 "module_name": self.module.name, | 122 "module_name": self.module.name, |
121 "namespace": self.module.namespace, | 123 "namespace": self.module.namespace, |
122 "enums": self.module.enums, | 124 "enums": self.module.enums, |
123 "structs": self.GetStructs(), | 125 "structs": self.GetStructs(), |
124 "interfaces": self.module.interfaces, | 126 "interfaces": self.module.interfaces, |
(...skipping 27 matching lines...) Expand all Loading... |
152 self.Write(self.GenerateModuleInternalHeader(), | 154 self.Write(self.GenerateModuleInternalHeader(), |
153 "%s_internal.h" % self.module.name) | 155 "%s_internal.h" % self.module.name) |
154 self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name) | 156 self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name) |
155 | 157 |
156 def GetIncludePrefix(self): | 158 def GetIncludePrefix(self): |
157 if not self.header_dir: | 159 if not self.header_dir: |
158 return "" | 160 return "" |
159 if self.header_dir[-1] == "/": | 161 if self.header_dir[-1] == "/": |
160 return self.header_dir | 162 return self.header_dir |
161 return self.header_dir + "/" | 163 return self.header_dir + "/" |
OLD | NEW |