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

Side by Side Diff: tools/json_schema_compiler/compiler.py

Issue 12181005: generated_api.h should have its body generated into generated_api.cc (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Latest master Created 7 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
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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 """Generator for C++ structs from api json files. 5 """Generator for C++ structs from api json files.
6 6
7 The purpose of this tool is to remove the need for hand-written code that 7 The purpose of this tool is to remove the need for hand-written code that
8 converts to and from base::Value types when receiving javascript api calls. 8 converts to and from base::Value types when receiving javascript api calls.
9 Originally written for generating code for extension apis. Reference schemas 9 Originally written for generating code for extension apis. Reference schemas
10 are in chrome/common/extensions/api. 10 are in chrome/common/extensions/api.
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 type_generator = CppTypeGenerator(api_model, 150 type_generator = CppTypeGenerator(api_model,
151 default_namespace=default_namespace) 151 default_namespace=default_namespace)
152 152
153 if opts.generator == 'cpp-bundle': 153 if opts.generator == 'cpp-bundle':
154 cpp_bundle_generator = CppBundleGenerator(opts.root, 154 cpp_bundle_generator = CppBundleGenerator(opts.root,
155 api_model, 155 api_model,
156 api_defs, 156 api_defs,
157 type_generator, 157 type_generator,
158 opts.namespace) 158 opts.namespace)
159 generators = [ 159 generators = [
160 ('generated_api.cc', cpp_bundle_generator.api_cc_generator),
160 ('generated_api.h', cpp_bundle_generator.api_h_generator), 161 ('generated_api.h', cpp_bundle_generator.api_h_generator),
161 ('generated_schemas.cc', cpp_bundle_generator.schemas_cc_generator), 162 ('generated_schemas.cc', cpp_bundle_generator.schemas_cc_generator),
162 ('generated_schemas.h', cpp_bundle_generator.schemas_h_generator) 163 ('generated_schemas.h', cpp_bundle_generator.schemas_h_generator)
163 ] 164 ]
164 elif opts.generator == 'cpp': 165 elif opts.generator == 'cpp':
165 cpp_generator = CppGenerator(type_generator, opts.namespace) 166 cpp_generator = CppGenerator(type_generator, opts.namespace)
166 generators = [ 167 generators = [
167 ('%s.h' % namespace.unix_name, cpp_generator.h_generator), 168 ('%s.h' % namespace.unix_name, cpp_generator.h_generator),
168 ('%s.cc' % namespace.unix_name, cpp_generator.cc_generator) 169 ('%s.cc' % namespace.unix_name, cpp_generator.cc_generator)
169 ] 170 ]
170 elif opts.generator == 'dart': 171 elif opts.generator == 'dart':
171 generators = [ 172 generators = [
172 ('%s.dart' % namespace.unix_name, DartGenerator( 173 ('%s.dart' % namespace.unix_name, DartGenerator(
173 opts.dart_overrides_dir)) 174 opts.dart_overrides_dir))
174 ] 175 ]
175 else: 176 else:
176 raise Exception('Unrecognised generator %s' % opts.generator) 177 raise Exception('Unrecognised generator %s' % opts.generator)
177 178
178 for filename, generator in generators: 179 for filename, generator in generators:
179 code = generator.Generate(namespace).Render() 180 code = generator.Generate(namespace).Render()
180 if opts.destdir: 181 if opts.destdir:
181 with open(os.path.join(opts.destdir, namespace.source_file_dir, 182 with open(os.path.join(opts.destdir, namespace.source_file_dir,
182 filename), 'w') as f: 183 filename), 'w') as f:
183 f.write(code) 184 f.write(code)
184 else: 185 else:
185 print filename 186 print filename
186 print 187 print
187 print code 188 print code
188 print 189 print
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698