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 |