Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Side by Side Diff: build/android/gyp/proguard.py

Issue 2485663003: Fix a subtle proguard incremental build error (Closed)
Patch Set: slash to paren Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2013 The Chromium Authors. All rights reserved. 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 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 import optparse 7 import optparse
8 import os 8 import os
9 import sys 9 import sys
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 options.input_paths = build_utils.ParseGnList(options.input_paths) 60 options.input_paths = build_utils.ParseGnList(options.input_paths)
61 61
62 return options 62 return options
63 63
64 64
65 def main(args): 65 def main(args):
66 args = build_utils.ExpandFileArgs(args) 66 args = build_utils.ExpandFileArgs(args)
67 options = _ParseOptions(args) 67 options = _ParseOptions(args)
68 68
69 # Work around cases where we switch from a non-proguard setup
70 # to proguard. The output jar might exist and might be a hardlink
71 # to the input jar, so remove the output before doing anything
72 # in that case to avoid an incremental build failure.
73 try:
74 out_inode = os.stat(options.output_path).st_ino
75 except OSError:
76 out_inode = None
77 if (out_inode and
78 out_inode in (os.stat(injar).st_ino for injar in options.input_paths)):
79 os.unlink(options.output_path)
80
69 proguard = proguard_util.ProguardCmdBuilder(options.proguard_path) 81 proguard = proguard_util.ProguardCmdBuilder(options.proguard_path)
70 proguard.injars(options.input_paths) 82 proguard.injars(options.input_paths)
71 proguard.configs(options.proguard_configs) 83 proguard.configs(options.proguard_configs)
72 proguard.outjar(options.output_path) 84 proguard.outjar(options.output_path)
73 85
74 if options.mapping: 86 if options.mapping:
75 proguard.mapping(options.mapping) 87 proguard.mapping(options.mapping)
76 88
77 if options.tested_apk_info: 89 if options.tested_apk_info:
78 proguard.tested_apk_info(options.tested_apk_info) 90 proguard.tested_apk_info(options.tested_apk_info)
79 91
80 classpath = list(set(options.classpath)) 92 classpath = list(set(options.classpath))
81 proguard.libraryjars(classpath) 93 proguard.libraryjars(classpath)
82 proguard.verbose(options.verbose) 94 proguard.verbose(options.verbose)
83 if not options.enable_dangerous_optimizations: 95 if not options.enable_dangerous_optimizations:
84 proguard.disable_optimizations(_DANGEROUS_OPTIMIZATIONS) 96 proguard.disable_optimizations(_DANGEROUS_OPTIMIZATIONS)
85 97
86 input_paths = proguard.GetInputs() 98 input_paths = proguard.GetInputs()
87 99
88 build_utils.CallAndWriteDepfileIfStale( 100 build_utils.CallAndWriteDepfileIfStale(
89 proguard.CheckOutput, 101 proguard.CheckOutput,
90 options, 102 options,
91 input_paths=input_paths, 103 input_paths=input_paths,
92 input_strings=proguard.build(), 104 input_strings=proguard.build(),
93 output_paths=[options.output_path]) 105 output_paths=[options.output_path])
94 106
95 107
96 if __name__ == '__main__': 108 if __name__ == '__main__':
97 sys.exit(main(sys.argv[1:])) 109 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698