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

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

Issue 2155363002: 💥 Fail compile if dx has input paths which do not end with .jar (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge branch 'fix_64bit' into fix_64bit_error Created 4 years, 5 months 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 json 7 import json
8 import logging 8 import logging
9 import optparse 9 import optparse
10 import os 10 import os
11 import sys 11 import sys
12 import tempfile 12 import tempfile
13 import zipfile 13 import zipfile
14 14
15 from util import build_utils 15 from util import build_utils
16 16
17 17
18 def _CheckFilePathEndsWithJar(parser, file_path):
19 if not file_path.endswith(".jar"):
20 # dx ignores non .jar files.
21 parser.error("%s does not end in .jar" % file_path)
22
23
24 def _CheckFilePathsEndWithJar(parser, file_paths):
25 for file_path in file_paths:
26 _CheckFilePathEndsWithJar(parser, file_path)
27
28
18 def _RemoveUnwantedFilesFromZip(dex_path): 29 def _RemoveUnwantedFilesFromZip(dex_path):
19 iz = zipfile.ZipFile(dex_path, 'r') 30 iz = zipfile.ZipFile(dex_path, 'r')
20 tmp_dex_path = '%s.tmp.zip' % dex_path 31 tmp_dex_path = '%s.tmp.zip' % dex_path
21 oz = zipfile.ZipFile(tmp_dex_path, 'w', zipfile.ZIP_DEFLATED) 32 oz = zipfile.ZipFile(tmp_dex_path, 'w', zipfile.ZIP_DEFLATED)
22 for i in iz.namelist(): 33 for i in iz.namelist():
23 if i.endswith('.dex'): 34 if i.endswith('.dex'):
24 oz.writestr(i, iz.read(i)) 35 oz.writestr(i, iz.read(i))
25 os.remove(dex_path) 36 os.remove(dex_path)
26 os.rename(tmp_dex_path, dex_path) 37 os.rename(tmp_dex_path, dex_path)
27 38
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 options.multi_dex = multidex_config.get('enabled', False) 85 options.multi_dex = multidex_config.get('enabled', False)
75 86
76 if options.multi_dex and not options.main_dex_list_path: 87 if options.multi_dex and not options.main_dex_list_path:
77 logging.warning('multidex cannot be enabled without --main-dex-list-path') 88 logging.warning('multidex cannot be enabled without --main-dex-list-path')
78 options.multi_dex = False 89 options.multi_dex = False
79 elif options.main_dex_list_path and not options.multi_dex: 90 elif options.main_dex_list_path and not options.multi_dex:
80 logging.warning('--main-dex-list-path is unused if multidex is not enabled') 91 logging.warning('--main-dex-list-path is unused if multidex is not enabled')
81 92
82 if options.inputs: 93 if options.inputs:
83 options.inputs = build_utils.ParseGypList(options.inputs) 94 options.inputs = build_utils.ParseGypList(options.inputs)
95 _CheckFilePathsEndWithJar(parser, options.inputs)
84 if options.excluded_paths: 96 if options.excluded_paths:
85 options.excluded_paths = build_utils.ParseGypList(options.excluded_paths) 97 options.excluded_paths = build_utils.ParseGypList(options.excluded_paths)
86 98
99 if options.proguard_enabled_input_path:
100 _CheckFilePathEndsWithJar(parser, options.proguard_enabled_input_path)
101 _CheckFilePathsEndWithJar(parser, paths)
102
87 return options, paths 103 return options, paths
88 104
89 105
90 def _AllSubpathsAreClassFiles(paths, changes): 106 def _AllSubpathsAreClassFiles(paths, changes):
91 for path in paths: 107 for path in paths:
92 if any(not p.endswith('.class') for p in changes.IterChangedSubpaths(path)): 108 if any(not p.endswith('.class') for p in changes.IterChangedSubpaths(path)):
93 return False 109 return False
94 return True 110 return True
95 111
96 112
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 options, 238 options,
223 input_paths=input_paths, 239 input_paths=input_paths,
224 input_strings=dex_cmd, 240 input_strings=dex_cmd,
225 output_paths=output_paths, 241 output_paths=output_paths,
226 force=force, 242 force=force,
227 pass_changes=True) 243 pass_changes=True)
228 244
229 245
230 if __name__ == '__main__': 246 if __name__ == '__main__':
231 sys.exit(main(sys.argv[1:])) 247 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