1 #!/usr/bin/env python 2 # 3 # Copyright 2013 The Chromium Authors. All rights reserved. 4 # Use of this source code is governed by a BSD-style license that can be 5 # found in the LICENSE file. 6 7 import json 8 import optparse 9 import os 10 import sys 11 12 from util import build_utils 13 14 15 def StripLibrary(android_strip, android_strip_args, library_path, output_path): 16 if build_utils.IsTimeStale(output_path, [library_path]): 17 strip_cmd = ([android_strip] + 18 android_strip_args + 19 ['-o', output_path, library_path]) 20 build_utils.CheckOutput(strip_cmd) 21 22 23 24 def main(): 25 parser = optparse.OptionParser() 26 27 parser.add_option('--android-strip', 28 help='Path to the toolchain\'s strip binary') 29 parser.add_option('--android-strip-arg', action='append', 30 help='Argument to be passed to strip') 31 parser.add_option('--libraries-dir', 32 help='Directory for un-stripped libraries') 33 parser.add_option('--stripped-libraries-dir', 34 help='Directory for stripped libraries') 35 parser.add_option('--libraries-file', 36 help='Path to json file containing list of libraries') 37 parser.add_option('--stamp', help='Path to touch on success') 38 39 40 options, _ = parser.parse_args() 41 42 with open(options.libraries_file, 'r') as libfile: 43 libraries = json.load(libfile) 44 45 build_utils.MakeDirectory(options.stripped_libraries_dir) 46 47 for library in libraries: 48 library_path = os.path.join(options.libraries_dir, library) 49 stripped_library_path = os.path.join( 50 options.stripped_libraries_dir, library) 51 StripLibrary(options.android_strip, options.android_strip_arg, library_path, 52 stripped_library_path) 53 54 if options.stamp: 55 build_utils.Touch(options.stamp) 56 57 58 if __name__ == '__main__': 59 sys.exit(main()) 60