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