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 = [options.proguard_path,
26 '-libraryjars', libraryjars,
27 '@' + options.proguard_config]
28 build_utils.CheckOutput(proguard_cmd, print_stdout=True)
32 parser = optparse.OptionParser()
33 parser.add_option('--proguard-path',
34 help='Path to the proguard executable.')
35 parser.add_option('--input-path',
36 help='Path to the .jar file proguard should run on.')
37 parser.add_option('--output-path', help='Path to the generated .jar file.')
38 parser.add_option('--proguard-config',
39 help='Path to the proguard configuration file.')
40 parser.add_option('--classpath', help="Classpath for proguard.")
41 parser.add_option('--stamp', help='Path to touch on success.')
43 options, _ = parser.parse_args()
48 build_utils.Touch(options.stamp)
51 if __name__ == '__main__':