#!/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. """Writes .h file for NativeLibraries.template This header should contain the list of native libraries to load in the form: = { "lib1", "lib2" } """ import json import optparse import os import sys from util import build_utils def main(argv): parser = optparse.OptionParser() 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') # 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.output, 'w') as header: header.write(array) if options.stamp: build_utils.Touch(options.stamp) if __name__ == '__main__': sys.exit(main(sys.argv))