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

Side by Side Diff: tools/json_to_struct/json_to_struct.py

Issue 382673002: Fixes for re-enabling more MSVC level 4 warnings: misc edition #2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2012 The Chromium Authors. All rights reserved. 2 # Copyright 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 5
6 # Format for the JSON schema file: 6 # Format for the JSON schema file:
7 # { 7 # {
8 # "type_name": "DesiredCStructName", 8 # "type_name": "DesiredCStructName",
9 # "headers": [ // Optional list of headers to be included by the .h. 9 # "headers": [ // Optional list of headers to be included by the .h.
10 # "path/to/header.h" 10 # "path/to/header.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 namespace: A string corresponding to the C++ namespace to use. 92 namespace: A string corresponding to the C++ namespace to use.
93 schema: A dict containing the schema. See comment at the top of this file. 93 schema: A dict containing the schema. See comment at the top of this file.
94 description: A dict containing the description. See comment at the top of 94 description: A dict containing the description. See comment at the top of
95 this file. 95 this file.
96 """ 96 """
97 97
98 h_filename = fileroot + '.h' 98 h_filename = fileroot + '.h'
99 with open(os.path.join(basepath, h_filename), 'w') as f: 99 with open(os.path.join(basepath, h_filename), 'w') as f:
100 f.write(head) 100 f.write(head)
101 101
102 f.write('#include <cstddef>\n')
103 f.write('\n')
104
105 header_guard = _GenerateHeaderGuard(h_filename) 102 header_guard = _GenerateHeaderGuard(h_filename)
106 f.write('#ifndef %s\n' % header_guard) 103 f.write('#ifndef %s\n' % header_guard)
107 f.write('#define %s\n' % header_guard) 104 f.write('#define %s\n' % header_guard)
108 f.write('\n') 105 f.write('\n')
109 106
107 f.write('#include <cstddef>\n')
108 f.write('\n')
Peter Kasting 2014/07/09 22:19:54 This just ensures the generated code puts all the
109
110 for header in schema.get('headers', []): 110 for header in schema.get('headers', []):
111 f.write('#include "%s"\n' % header) 111 f.write('#include "%s"\n' % header)
112 f.write('\n') 112 f.write('\n')
113 113
114 if namespace: 114 if namespace:
115 f.write('namespace %s {\n' % namespace) 115 f.write('namespace %s {\n' % namespace)
116 f.write('\n') 116 f.write('\n')
117 117
118 f.write(struct_generator.GenerateStruct( 118 f.write(struct_generator.GenerateStruct(
119 schema['type_name'], schema['schema'])) 119 schema['type_name'], schema['schema']))
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 basepath = os.path.normpath(opts.destbase) 202 basepath = os.path.normpath(opts.destbase)
203 else: 203 else:
204 basepath = '' 204 basepath = ''
205 205
206 schema = _Load(opts.schema) 206 schema = _Load(opts.schema)
207 description = _Load(description_filename) 207 description = _Load(description_filename)
208 208
209 head = HEAD % (datetime.now().year, opts.schema, description_filename) 209 head = HEAD % (datetime.now().year, opts.schema, description_filename)
210 _GenerateH(basepath, output_root, head, opts.namespace, schema, description) 210 _GenerateH(basepath, output_root, head, opts.namespace, schema, description)
211 _GenerateCC(basepath, output_root, head, opts.namespace, schema, description) 211 _GenerateCC(basepath, output_root, head, opts.namespace, schema, description)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698