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

Side by Side Diff: ui/ozone/generate_constructor_list.py

Issue 2768343002: Change namespace from ui to gfx for NativePixmap related code (Closed)
Patch Set: Addressed sadrul's remark Created 3 years, 9 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Code generator for PlatformObject<> constructor list. 6 """Code generator for PlatformObject<> constructor list.
7 7
8 This script takes as arguments a list of platform names as a text file and 8 This script takes as arguments a list of platform names as a text file and
9 a list of types and generates a C++ source file containing a list of 9 a list of types and generates a C++ source file containing a list of
10 the constructors for that object in platform order. 10 the constructors for that object in platform order.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 def GetConstructorName(typename, platform): 65 def GetConstructorName(typename, platform):
66 """Determine name of static constructor function from platform name. 66 """Determine name of static constructor function from platform name.
67 67
68 This is just "Create" + typename + platform. 68 This is just "Create" + typename + platform.
69 """ 69 """
70 70
71 return 'Create' + typename + string.capitalize(platform) 71 return 'Create' + typename + string.capitalize(platform)
72 72
73 73
74 def GenerateConstructorList(out, namespace, export, typenames, platforms, 74 def GenerateConstructorList(out, namespace, export, typenames, platforms,
75 includes): 75 includes, usings):
76 """Generate static array containing a list of constructors.""" 76 """Generate static array containing a list of constructors."""
77 77
78 out.write('// DO NOT MODIFY. GENERATED BY generate_constructor_list.py\n') 78 out.write('// DO NOT MODIFY. GENERATED BY generate_constructor_list.py\n')
79 out.write('\n') 79 out.write('\n')
80 80
81 out.write('#include "ui/ozone/platform_object_internal.h"\n') 81 out.write('#include "ui/ozone/platform_object_internal.h"\n')
82 out.write('\n') 82 out.write('\n')
83 83
84 for include in includes: 84 for include in includes:
85 out.write('#include %(include)s\n' % {'include': include}) 85 out.write('#include %(include)s\n' % {'include': include})
86 out.write('\n') 86 out.write('\n')
87 87
88 for using in usings:
89 out.write('using %(using)s;\n' % {'using': using})
90 out.write('\n')
91
88 out.write('namespace %(namespace)s {\n' % {'namespace': namespace}) 92 out.write('namespace %(namespace)s {\n' % {'namespace': namespace})
89 out.write('\n') 93 out.write('\n')
90 94
91 # Declarations of constructor functions. 95 # Declarations of constructor functions.
92 for typename in typenames: 96 for typename in typenames:
93 for platform in platforms: 97 for platform in platforms:
94 constructor = GetConstructorName(typename, platform) 98 constructor = GetConstructorName(typename, platform)
95 out.write('%(typename)s* %(constructor)s();\n' 99 out.write('%(typename)s* %(constructor)s();\n'
96 % {'typename': typename, 100 % {'typename': typename,
97 'constructor': constructor}) 101 'constructor': constructor})
98 out.write('\n') 102 out.write('\n')
99 103
100 out.write('} // namespace %(namespace)s\n' % {'namespace': namespace}) 104 out.write('} // namespace %(namespace)s\n' % {'namespace': namespace})
101 out.write('\n') 105 out.write('\n')
102 106
103 out.write('namespace ui {\n') 107 out.write('namespace ui {\n')
104 out.write('\n') 108 out.write('\n')
105 109
106 # Handy typedefs for constructor types. 110 # Handy typedefs for constructor types.
107 for typename in typenames: 111 for typename in typenames:
108 out.write('typedef %(typename)s* (*%(typedef)s)();\n' 112 out.write('typedef %(typename)s* (*%(typedef)s)();\n'
109 % {'typename': namespace + '::' + typename, 113 % {'typename': typename,
110 'typedef': GetTypedefName(typename)}) 114 'typedef': GetTypedefName(typename)})
111 out.write('\n') 115 out.write('\n')
112 116
113 # The actual constructor lists. 117 # The actual constructor lists.
114 for typename in typenames: 118 for typename in typenames:
115 out.write('template <> const %(typedef)s\n' 119 out.write('template <> const %(typedef)s\n'
116 % {'typedef': GetTypedefName(typename)}) 120 % {'typedef': GetTypedefName(typename)})
117 out.write('PlatformConstructorList<%(typename)s>::kConstructors[] = {\n' 121 out.write('PlatformConstructorList<%(typename)s>::kConstructors[] = {\n'
118 % {'typename': namespace + '::' + typename}) 122 % {'typename': typename})
119 for platform in platforms: 123 for platform in platforms:
120 constructor = GetConstructorName(typename, platform) 124 constructor = GetConstructorName(typename, platform)
121 out.write(' &%(namespace)s::%(constructor)s,\n' 125 out.write(' &%(namespace)s::%(constructor)s,\n'
122 % {'namespace': namespace, 'constructor': constructor}) 126 % {'namespace': namespace, 'constructor': constructor})
123 out.write('};\n') 127 out.write('};\n')
124 out.write('\n') 128 out.write('\n')
125 129
126 # Exported template instantiation. 130 # Exported template instantiation.
127 for typename in typenames: 131 for typename in typenames:
128 out.write('template class %(export)s PlatformObject<%(typename)s>;\n' 132 out.write('template class %(export)s PlatformObject<%(typename)s>;\n'
129 % {'export': export, 'typename': namespace + '::' + typename}) 133 % {'export': export, 'typename': typename})
130 out.write('\n') 134 out.write('\n')
131 135
132 out.write('} // namespace ui\n') 136 out.write('} // namespace ui\n')
133 out.write('\n') 137 out.write('\n')
134 138
135 139
136 def main(argv): 140 def main(argv):
137 parser = optparse.OptionParser() 141 parser = optparse.OptionParser()
138 parser.add_option('--namespace', default='ozone') 142 parser.add_option('--namespace', default='ozone')
139 parser.add_option('--export', default='OZONE_EXPORT') 143 parser.add_option('--export', default='OZONE_EXPORT')
140 parser.add_option('--platform_list') 144 parser.add_option('--platform_list')
141 parser.add_option('--output_cc') 145 parser.add_option('--output_cc')
142 parser.add_option('--include', action='append', default=[]) 146 parser.add_option('--include', action='append', default=[])
143 parser.add_option('--platform', action='append', default=[]) 147 parser.add_option('--platform', action='append', default=[])
144 parser.add_option('--typename', action='append', default=[]) 148 parser.add_option('--typename', action='append', default=[])
149 parser.add_option('--using', action='append', default=[])
145 options, _ = parser.parse_args(argv) 150 options, _ = parser.parse_args(argv)
146 151
147 platforms = list(options.platform) 152 platforms = list(options.platform)
148 typenames = list(options.typename) 153 typenames = list(options.typename)
149 includes = list(options.include) 154 includes = list(options.include)
155 usings = list(options.using)
150 156
151 if options.platform_list: 157 if options.platform_list:
152 platforms = open(options.platform_list, 'r').read().strip().split('\n') 158 platforms = open(options.platform_list, 'r').read().strip().split('\n')
153 159
154 if not platforms: 160 if not platforms:
155 sys.stderr.write('No platforms are selected!') 161 sys.stderr.write('No platforms are selected!')
156 sys.exit(1) 162 sys.exit(1)
157 163
158 # Write to standard output or file specified by --output_cc. 164 # Write to standard output or file specified by --output_cc.
159 out_cc = sys.stdout 165 out_cc = sys.stdout
160 if options.output_cc: 166 if options.output_cc:
161 out_cc = open(options.output_cc, 'wb') 167 out_cc = open(options.output_cc, 'wb')
162 168
163 GenerateConstructorList(out_cc, options.namespace, options.export, 169 GenerateConstructorList(out_cc, options.namespace, options.export,
164 typenames, platforms, includes) 170 typenames, platforms, includes, usings)
165 171
166 if options.output_cc: 172 if options.output_cc:
167 out_cc.close() 173 out_cc.close()
168 174
169 return 0 175 return 0
170 176
171 177
172 if __name__ == '__main__': 178 if __name__ == '__main__':
173 sys.exit(main(sys.argv[1:])) 179 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « ui/ozone/demo/surfaceless_gl_renderer.cc ('k') | ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698