diff options
Diffstat (limited to 'utils/ipc/mojo/public/tools/bindings/format_typemap_generator_args.py')
-rwxr-xr-x | utils/ipc/mojo/public/tools/bindings/format_typemap_generator_args.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/utils/ipc/mojo/public/tools/bindings/format_typemap_generator_args.py b/utils/ipc/mojo/public/tools/bindings/format_typemap_generator_args.py new file mode 100755 index 00000000..7ac4af5f --- /dev/null +++ b/utils/ipc/mojo/public/tools/bindings/format_typemap_generator_args.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# Copyright 2016 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. + +from __future__ import print_function + +import sys + +# This utility converts mojom dependencies into their corresponding typemap +# paths and formats them to be consumed by generate_type_mappings.py. + + +def FormatTypemap(typemap_filename): + # A simple typemap is valid Python with a minor alteration. + with open(typemap_filename) as f: + typemap_content = f.read().replace('=\n', '=') + typemap = {} + exec typemap_content in typemap + + for header in typemap.get('public_headers', []): + yield 'public_headers=%s' % header + for header in typemap.get('traits_headers', []): + yield 'traits_headers=%s' % header + for header in typemap.get('type_mappings', []): + yield 'type_mappings=%s' % header + + +def main(): + typemaps = sys.argv[1:] + print(' '.join('--start-typemap %s' % ' '.join(FormatTypemap(typemap)) + for typemap in typemaps)) + + +if __name__ == '__main__': + sys.exit(main()) |