| Index: mojo/public/tools/bindings/pylib/mojom_tests/support/run_bindings_generator.py
|
| diff --git a/mojo/public/tools/bindings/pylib/mojom_tests/support/run_bindings_generator.py b/mojo/public/tools/bindings/pylib/mojom_tests/support/run_bindings_generator.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..20ef461969923ec9f63d3fedfd921f713f1c8bd2
|
| --- /dev/null
|
| +++ b/mojo/public/tools/bindings/pylib/mojom_tests/support/run_bindings_generator.py
|
| @@ -0,0 +1,47 @@
|
| +# Copyright 2014 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +import os.path
|
| +from subprocess import check_call
|
| +import sys
|
| +
|
| +
|
| +def RunBindingsGenerator(out_dir, root_dir, mojom_file, extra_flags=None):
|
| + out_dir = os.path.abspath(out_dir)
|
| + root_dir = os.path.abspath(root_dir)
|
| + mojom_file = os.path.abspath(mojom_file)
|
| +
|
| + # The mojom file should be under the root directory somewhere.
|
| + assert mojom_file.startswith(root_dir)
|
| + mojom_reldir = os.path.dirname(os.path.relpath(mojom_file, root_dir))
|
| +
|
| + # TODO(vtl): Abstract out the "main" functions, so that we can just import
|
| + # the bindings generator (which would be more portable and easier to use in
|
| + # tests).
|
| + this_dir = os.path.dirname(os.path.abspath(__file__))
|
| + # We're in src/mojo/public/tools/bindings/pylib/mojom_tests/support;
|
| + # mojom_bindings_generator.py is in .../bindings.
|
| + bindings_generator = os.path.join(this_dir, os.pardir, os.pardir, os.pardir,
|
| + "mojom_bindings_generator.py")
|
| +
|
| + args = ["python", bindings_generator,
|
| + "-o", os.path.join(out_dir, mojom_reldir)]
|
| + if extra_flags:
|
| + args.extend(extra_flags)
|
| + args.append(mojom_file)
|
| +
|
| + check_call(args)
|
| +
|
| +
|
| +def main(argv):
|
| + if len(argv) < 4:
|
| + print "usage: %s out_dir root_dir mojom_file [extra_flags]" % argv[0]
|
| + return 1
|
| +
|
| + RunBindingsGenerator(argv[1], argv[2], argv[3], extra_flags=argv[4:])
|
| + return 0
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + sys.exit(main(sys.argv))
|
|
|