Chromium Code Reviews| Index: build/android/create_native_libraries_java.py |
| diff --git a/build/android/create_native_libraries_java.py b/build/android/create_native_libraries_java.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..4137d9cfe4772267283e848bf6b53e090311c42a |
| --- /dev/null |
| +++ b/build/android/create_native_libraries_java.py |
| @@ -0,0 +1,51 @@ |
| +#!/usr/bin/env python |
| +# |
| +# Copyright 2013 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 json |
| +import optparse |
| +import os |
| +import sys |
| + |
| +from pylib import build_utils |
| + |
| + |
| +def main(argv): |
| + parser = optparse.OptionParser() |
| + |
| + parser.add_option('--template', help='Path to the .java template file') |
| + parser.add_option('--output', help='Path to generated .java file') |
| + parser.add_option('--ordered-libraries', |
| + help='Path to json file containing list of ordered libraries') |
| + parser.add_option('--stamp', help='Path to touch on success') |
|
bulach
2013/03/26 19:02:15
see below, I think we can simplify and make this a
|
| + |
| + # args should be the list of libraries in dependency order. |
| + options, _ = parser.parse_args() |
| + |
| + build_utils.MakeDirectory(os.path.dirname(options.output)) |
| + |
| + with open(options.ordered_libraries, 'r') as libfile: |
| + libraries = json.load(libfile) |
| + # Generates string of the form '= { "base", "net", |
| + # "content_shell_content_view" }' from a list of the form ["libbase.so", |
| + # libnet.so", "libcontent_shell_content_view.so"] |
| + libraries = ['"' + lib[3:-3] + '"' for lib in libraries] |
| + array = '= { ' + ', '.join(libraries) + '}'; |
| + |
| + with open(options.template, 'r') as template: |
| + with open(options.output, 'w') as output: |
| + for line in template.readlines(): |
| + # The template contains a line of the form: |
| + # static String[] libraries /*****/; |
| + output.write(line.replace('/*****/', array)) |
| + |
| + if options.stamp: |
| + build_utils.Touch(options.stamp) |
| + |
| + |
| +if __name__ == '__main__': |
| + sys.exit(main(sys.argv)) |
| + |
| + |