diff options
Diffstat (limited to 'chromium/tools/json_schema_compiler/compiler.py')
-rwxr-xr-x | chromium/tools/json_schema_compiler/compiler.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/chromium/tools/json_schema_compiler/compiler.py b/chromium/tools/json_schema_compiler/compiler.py index ddab77eadd7..21281fcdabf 100755 --- a/chromium/tools/json_schema_compiler/compiler.py +++ b/chromium/tools/json_schema_compiler/compiler.py @@ -26,11 +26,12 @@ 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, @@ -38,15 +39,14 @@ def GenerateSchema(generator, destdir, root_namespace, dart_overrides_dir): - schema_loader = SchemaLoader(os.path.dirname(os.path.relpath( - os.path.normpath(filenames[0]), root))) + schema_loader = SchemaLoader( + os.path.dirname(os.path.relpath(os.path.normpath(filenames[0]), root)), + os.path.dirname(filenames[0])) # Merge the source files into a single list of schemas. api_defs = [] for filename in filenames: schema = os.path.normpath(filename) - schema_filename, schema_extension = os.path.splitext(schema) - path, short_filename = os.path.split(schema_filename) - api_def = schema_loader.LoadSchema(schema) + api_def = schema_loader.LoadSchema(os.path.split(schema)[1]) # If compiling the C++ model code, delete 'nocompile' nodes. if generator == 'cpp': @@ -88,7 +88,8 @@ def GenerateSchema(generator, api_model, api_defs, type_generator, - root_namespace) + root_namespace, + namespace.source_file_dir) generators = [ ('generated_api.cc', cpp_bundle_generator.api_cc_generator), ('generated_api.h', cpp_bundle_generator.api_h_generator), @@ -106,6 +107,12 @@ def GenerateSchema(generator, ('%s.dart' % namespace.unix_name, DartGenerator( dart_overrides_dir)) ] + elif generator == 'ppapi': + generator = PpapiGenerator() + generators = [ + (os.path.join('api', 'ppb_%s.idl' % namespace.unix_name), + generator.idl_generator), + ] else: raise Exception('Unrecognised generator %s' % generator) |