| Index: tools/json_schema_compiler/compiler.py
|
| diff --git a/tools/json_schema_compiler/compiler.py b/tools/json_schema_compiler/compiler.py
|
| index 25d901235053abe1fe691456766b7a64372f28ca..ff91ccf1c02f8d5d4a528a1674b4dc20d879f805 100755
|
| --- a/tools/json_schema_compiler/compiler.py
|
| +++ b/tools/json_schema_compiler/compiler.py
|
| @@ -33,19 +33,19 @@ from schema_loader import SchemaLoader
|
| GENERATORS = ['cpp', 'cpp-bundle', 'dart']
|
|
|
| def GenerateSchema(generator,
|
| - filenames,
|
| + file_paths,
|
| root,
|
| destdir,
|
| - root_namespace,
|
| + cpp_namespace_pattern,
|
| dart_overrides_dir,
|
| impl_dir):
|
| # Merge the source files into a single list of schemas.
|
| api_defs = []
|
| - for filename in filenames:
|
| - schema = os.path.normpath(filename)
|
| + for file_path in file_paths:
|
| + schema = os.path.normpath(file_path)
|
| schema_loader = SchemaLoader(
|
| - os.path.dirname(os.path.relpath(os.path.normpath(filename), root)),
|
| - os.path.dirname(filename))
|
| + os.path.dirname(os.path.relpath(schema, root)),
|
| + os.path.dirname(file_path))
|
| api_def = schema_loader.LoadSchema(os.path.split(schema)[1])
|
|
|
| # If compiling the C++ model code, delete 'nocompile' nodes.
|
| @@ -64,8 +64,8 @@ def GenerateSchema(generator,
|
| src_path = None
|
|
|
| # Load the actual namespaces into the model.
|
| - for target_namespace, schema_filename in zip(api_defs, filenames):
|
| - relpath = os.path.relpath(os.path.normpath(schema_filename), root)
|
| + for target_namespace, file_path in zip(api_defs, file_paths):
|
| + relpath = os.path.relpath(os.path.normpath(file_path), root)
|
| namespace = api_model.AddNamespace(target_namespace,
|
| relpath,
|
| include_compiler_options=True)
|
| @@ -78,19 +78,19 @@ def GenerateSchema(generator,
|
| else:
|
| src_path = os.path.commonprefix((src_path, namespace.source_file_dir))
|
|
|
| - path, filename = os.path.split(schema_filename)
|
| - short_filename, extension = os.path.splitext(filename)
|
| + path, filename = os.path.split(file_path)
|
| + filename_base, _ = os.path.splitext(filename)
|
|
|
| # Construct the type generator with all the namespaces in this model.
|
| type_generator = CppTypeGenerator(api_model,
|
| schema_loader,
|
| - default_namespace=default_namespace)
|
| + default_namespace)
|
| if generator == 'cpp-bundle':
|
| cpp_bundle_generator = CppBundleGenerator(root,
|
| api_model,
|
| api_defs,
|
| type_generator,
|
| - root_namespace,
|
| + cpp_namespace_pattern,
|
| src_path,
|
| impl_dir)
|
| generators = [
|
| @@ -100,10 +100,10 @@ def GenerateSchema(generator,
|
| ('generated_schemas.h', cpp_bundle_generator.schemas_h_generator)
|
| ]
|
| elif generator == 'cpp':
|
| - cpp_generator = CppGenerator(type_generator, root_namespace)
|
| + cpp_generator = CppGenerator(type_generator, cpp_namespace_pattern)
|
| generators = [
|
| - ('%s.h' % short_filename, cpp_generator.h_generator),
|
| - ('%s.cc' % short_filename, cpp_generator.cc_generator)
|
| + ('%s.h' % filename_base, cpp_generator.h_generator),
|
| + ('%s.cc' % filename_base, cpp_generator.cc_generator)
|
| ]
|
| elif generator == 'dart':
|
| generators = [
|
| @@ -147,18 +147,18 @@ if __name__ == '__main__':
|
| parser.add_option('-i', '--impl-dir', dest='impl_dir',
|
| help='The root path of all API implementations')
|
|
|
| - (opts, filenames) = parser.parse_args()
|
| + (opts, file_paths) = parser.parse_args()
|
|
|
| - if not filenames:
|
| + if not file_paths:
|
| sys.exit(0) # This is OK as a no-op
|
|
|
| # Unless in bundle mode, only one file should be specified.
|
| - if opts.generator != 'cpp-bundle' and len(filenames) > 1:
|
| - # TODO(sashab): Could also just use filenames[0] here and not complain.
|
| + if opts.generator != 'cpp-bundle' and len(file_paths) > 1:
|
| + # TODO(sashab): Could also just use file_paths[0] here and not complain.
|
| raise Exception(
|
| "Unless in bundle mode, only one file can be specified at a time.")
|
|
|
| - result = GenerateSchema(opts.generator, filenames, opts.root, opts.destdir,
|
| + result = GenerateSchema(opts.generator, file_paths, opts.root, opts.destdir,
|
| opts.namespace, opts.dart_overrides_dir,
|
| opts.impl_dir)
|
| if not opts.destdir:
|
|
|