| Index: tools/json_schema_compiler/compiler.py
|
| diff --git a/tools/json_schema_compiler/compiler.py b/tools/json_schema_compiler/compiler.py
|
| index 3759b0a172325da235a369efc5fc65b8ca839ca3..73f031c1a8050ba0e35cc9a866c892ac2c8ca388 100755
|
| --- a/tools/json_schema_compiler/compiler.py
|
| +++ b/tools/json_schema_compiler/compiler.py
|
| @@ -26,18 +26,20 @@ from cpp_type_generator import CppTypeGenerator
|
| from dart_generator import DartGenerator
|
| import json_schema
|
| from model import Model
|
| +from ppapi_generator import PpapiGenerator
|
| from schema_loader import SchemaLoader
|
|
|
| # Names of supported code generators, as specified on the command-line.
|
| # First is default.
|
| -GENERATORS = ['cpp', 'cpp-bundle', 'dart']
|
| +GENERATORS = ['cpp', 'cpp-bundle', 'dart', 'ppapi']
|
|
|
| def GenerateSchema(generator,
|
| filenames,
|
| root,
|
| destdir,
|
| root_namespace,
|
| - dart_overrides_dir):
|
| + dart_overrides_dir,
|
| + is_ppapi_dev=False):
|
| schema_loader = SchemaLoader(
|
| os.path.dirname(os.path.relpath(os.path.normpath(filenames[0]), root)),
|
| os.path.dirname(filenames[0]))
|
| @@ -106,6 +108,19 @@ def GenerateSchema(generator,
|
| ('%s.dart' % namespace.unix_name, DartGenerator(
|
| dart_overrides_dir))
|
| ]
|
| + elif generator == 'ppapi':
|
| + generator = PpapiGenerator(is_ppapi_dev)
|
| + if is_ppapi_dev:
|
| + dev_directory = 'dev'
|
| + dev_infix = '_dev'
|
| + else:
|
| + dev_directory = ''
|
| + dev_infix = ''
|
| + generators = [
|
| + (os.path.join('api', dev_directory, 'ppb_%s%s.idl' %
|
| + (namespace.unix_name, dev_infix)),
|
| + generator.idl_generator),
|
| + ]
|
| else:
|
| raise Exception('Unrecognised generator %s' % generator)
|
|
|
| @@ -138,6 +153,9 @@ if __name__ == '__main__':
|
| ' %s' % GENERATORS)
|
| parser.add_option('-D', '--dart-overrides-dir', dest='dart_overrides_dir',
|
| help='Adds custom dart from files in the given directory (Dart only).')
|
| + parser.add_option(
|
| + '', '--ppapi_dev', action='store_true', dest='ppapi_dev', default=False,
|
| + help='Whether APIs are dev APIs (ppapi only).')
|
|
|
| (opts, filenames) = parser.parse_args()
|
|
|
| @@ -151,6 +169,7 @@ if __name__ == '__main__':
|
| "Unless in bundle mode, only one file can be specified at a time.")
|
|
|
| result = GenerateSchema(opts.generator, filenames, opts.root, opts.destdir,
|
| - opts.namespace, opts.dart_overrides_dir)
|
| + opts.namespace, opts.dart_overrides_dir,
|
| + is_ppapi_dev=opts.ppapi_dev)
|
| if not opts.destdir:
|
| print result
|
|
|