OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # | 2 # |
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 """ Generator for C style prototypes and definitions """ | 7 """ Generator for C style prototypes and definitions """ |
8 | 8 |
9 import glob | 9 import glob |
10 import os | 10 import os |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 name = node.GetName() | 107 name = node.GetName() |
108 name = name.upper() | 108 name = name.upper() |
109 return "%s_INTERFACE" % name | 109 return "%s_INTERFACE" % name |
110 | 110 |
111 def GetDefine(self, name, value): | 111 def GetDefine(self, name, value): |
112 out = '#define %s %s' % (name, value) | 112 out = '#define %s %s' % (name, value) |
113 if len(out) > 80: | 113 if len(out) > 80: |
114 out = '#define %s \\\n %s' % (name, value) | 114 out = '#define %s \\\n %s' % (name, value) |
115 return '%s\n' % out | 115 return '%s\n' % out |
116 | 116 |
| 117 def GetVersionString(self, node): |
| 118 # If an interface name is specified, use that |
| 119 iname = node.GetProperty('iname') |
| 120 if iname: return iname |
| 121 |
| 122 # Otherwise, the interface name is the object's name |
| 123 # With '_Dev' replaced by '(Dev)' if it's a Dev interface. |
| 124 name = node.GetName() |
| 125 if len(name) > 4 and name[-4:] == '_Dev': |
| 126 name = '%s(Dev)' % name[:-4] |
| 127 return name |
117 | 128 |
118 def GetOutFile(self, filenode, options): | 129 def GetOutFile(self, filenode, options): |
119 savename = GetOutFileName(filenode, GetOption('dstroot')) | 130 savename = GetOutFileName(filenode, GetOption('dstroot')) |
120 return IDLOutFile(savename) | 131 return IDLOutFile(savename) |
121 | 132 |
122 def GenerateHead(self, out, filenode, releases, options): | 133 def GenerateHead(self, out, filenode, releases, options): |
123 cgen = CGen() | 134 cgen = CGen() |
124 gpath = GetOption('guard') | 135 gpath = GetOption('guard') |
125 release = releases[0] | 136 release = releases[0] |
126 def_guard = GetOutFileName(filenode, relpath=gpath) | 137 def_guard = GetOutFileName(filenode, relpath=gpath) |
(...skipping 29 matching lines...) Expand all Loading... |
156 includes = sorted(set(includes)) | 167 includes = sorted(set(includes)) |
157 cur_include = GetOutFileName(filenode, relpath=gpath) | 168 cur_include = GetOutFileName(filenode, relpath=gpath) |
158 for include in includes: | 169 for include in includes: |
159 if include == cur_include: continue | 170 if include == cur_include: continue |
160 out.Write('#include "%s"\n' % include) | 171 out.Write('#include "%s"\n' % include) |
161 | 172 |
162 # Generate all interface defines | 173 # Generate all interface defines |
163 out.Write('\n') | 174 out.Write('\n') |
164 for node in filenode.GetListOf('Interface'): | 175 for node in filenode.GetListOf('Interface'): |
165 idefs = '' | 176 idefs = '' |
166 name = node.GetName() | 177 name = self.GetVersionString(node) |
167 macro = node.GetProperty('macro') | 178 macro = node.GetProperty('macro') |
168 if not macro: | 179 if not macro: |
169 macro = self.GetMacro(node) | 180 macro = self.GetMacro(node) |
170 | 181 |
171 unique = node.GetUniqueReleases(releases) | 182 unique = node.GetUniqueReleases(releases) |
172 for rel in unique: | 183 for rel in unique: |
173 version = node.GetVersion(rel) | 184 version = node.GetVersion(rel) |
174 strver = str(version).replace('.', '_') | 185 strver = str(version).replace('.', '_') |
175 idefs += self.GetDefine('%s_%s' % (macro, strver), | 186 idefs += self.GetDefine('%s_%s' % (macro, strver), |
176 '"%s;%s"' % (name, version)) | 187 '"%s;%s"' % (name, version)) |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 failed =1 | 232 failed =1 |
222 else: | 233 else: |
223 print "Golden file for M13-M15 passed." | 234 print "Golden file for M13-M15 passed." |
224 | 235 |
225 return failed | 236 return failed |
226 | 237 |
227 if __name__ == '__main__': | 238 if __name__ == '__main__': |
228 retval = Main(sys.argv[1:]) | 239 retval = Main(sys.argv[1:]) |
229 sys.exit(retval) | 240 sys.exit(retval) |
230 | 241 |
OLD | NEW |