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.
11 from util import build_utils
13 def DoProguard(options):
14 injars = options.input_path
15 outjars = options.output_path
16 classpath = build_utils.ParseGypList(options.classpath)
17 classpath = list(set(classpath))
18 libraryjars = ':'.join(classpath)
19 # proguard does its own dependency checking, which can be avoided by deleting
21 if os.path.exists(options.output_path):
22 os.remove(options.output_path)
23 proguard_cmd = ['java', '-jar',
24 options.proguard_path,
27 '-libraryjars', libraryjars,
28 '@' + options.proguard_config]
29 build_utils.CheckOutput(proguard_cmd, print_stdout=True)
33 parser = optparse.OptionParser()
34 parser.add_option('--proguard-path',
35 help='Path to the proguard executable.')
36 parser.add_option('--input-path',
37 help='Path to the .jar file proguard should run on.')
38 parser.add_option('--output-path', help='Path to the generated .jar file.')
39 parser.add_option('--proguard-config',
40 help='Path to the proguard configuration file.')
41 parser.add_option('--classpath', help="Classpath for proguard.")
42 parser.add_option('--stamp', help='Path to touch on success.')
44 options, _ = parser.parse_args()
49 build_utils.Touch(options.stamp)
52 if __name__ == '__main__':