| #!/usr/bin/env python |
| # |
| # 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. |
| |
| """Invokes Android's aidl |
| """ |
| |
| import optparse |
| import os |
| import sys |
| |
| from util import build_utils |
| |
| |
| def main(argv): |
| option_parser = optparse.OptionParser() |
| build_utils.AddDepfileOption(option_parser) |
| option_parser.add_option('--aidl-path', help='Path to the aidl binary.') |
| option_parser.add_option('--imports', help='Files to import.') |
| option_parser.add_option('--includes', |
| help='Directories to add as import search paths.') |
| option_parser.add_option('--srcjar', help='Path for srcjar output.') |
| options, args = option_parser.parse_args(argv[1:]) |
| |
| with build_utils.TempDir() as temp_dir: |
| for f in args: |
| classname = os.path.splitext(os.path.basename(f))[0] |
| output = os.path.join(temp_dir, classname + '.java') |
| aidl_cmd = [options.aidl_path] |
| aidl_cmd += [ |
| '-p' + s for s in build_utils.ParseGypList(options.imports) |
| ] |
| if options.includes is not None: |
| aidl_cmd += [ |
| '-I' + s for s in build_utils.ParseGypList(options.includes) |
| ] |
| aidl_cmd += [ |
| f, |
| output |
| ] |
| build_utils.CheckOutput(aidl_cmd) |
| |
| build_utils.ZipDir(options.srcjar, temp_dir) |
| |
| if options.depfile: |
| build_utils.WriteDepfile( |
| options.depfile, |
| build_utils.GetPythonDependencies()) |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main(sys.argv)) |