summaryrefslogtreecommitdiff
path: root/chromium/tools/json_schema_compiler/compiler.py
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/tools/json_schema_compiler/compiler.py')
-rwxr-xr-xchromium/tools/json_schema_compiler/compiler.py21
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)