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

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

Issue 778093004: GN + Android: extract android_standalone_library rule. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Chris's comment. Created 6 years 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 | build/config/android/internal_rules.gni » ('j') | 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 2014 The Chromium Authors. All rights reserved. 3 # Copyright 2014 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 """Writes a build_config file. 7 """Writes a build_config file.
8 8
9 The build_config file for a target is a json file containing information about 9 The build_config file for a target is a json file containing information about
10 how to build that target based on the target's dependencies. This includes 10 how to build that target based on the target's dependencies. This includes
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 parser.add_option('--native-libs', help='List of top-level native libs.') 88 parser.add_option('--native-libs', help='List of top-level native libs.')
89 parser.add_option('--readelf-path', help='Path to toolchain\'s readelf.') 89 parser.add_option('--readelf-path', help='Path to toolchain\'s readelf.')
90 90
91 options, args = parser.parse_args(argv) 91 options, args = parser.parse_args(argv)
92 92
93 if args: 93 if args:
94 parser.error('No positional arguments should be given.') 94 parser.error('No positional arguments should be given.')
95 95
96 96
97 if not options.type in [ 97 if not options.type in [
98 'java_library', 'android_resources', 'android_apk']: 98 'java_library', 'android_resources', 'android_apk', 'deps_dex']:
99 raise Exception('Unknown type: <%s>' % options.type) 99 raise Exception('Unknown type: <%s>' % options.type)
100 100
101 required_options = ['build_config'] + { 101 required_options = ['build_config'] + {
102 'java_library': ['jar_path'], 102 'java_library': ['jar_path'],
103 'android_resources': ['resources_zip'], 103 'android_resources': ['resources_zip'],
104 'android_apk': ['jar_path', 'dex_path', 'resources_zip'] 104 'android_apk': ['jar_path', 'dex_path', 'resources_zip'],
105 'deps_dex': ['dex_path']
105 }[options.type] 106 }[options.type]
106 107
107 if options.native_libs: 108 if options.native_libs:
108 required_options.append('readelf_path') 109 required_options.append('readelf_path')
109 110
110 build_utils.CheckOptions(options, parser, required_options) 111 build_utils.CheckOptions(options, parser, required_options)
111 112
112 if options.type == 'java_library': 113 if options.type == 'java_library':
113 if options.supports_android and not options.dex_path: 114 if options.supports_android and not options.dex_path:
114 raise Exception('java_library that supports Android requires a dex path.') 115 raise Exception('java_library that supports Android requires a dex path.')
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 config['resources'] = {} 207 config['resources'] = {}
207 config['resources']['dependency_zips'] = [ 208 config['resources']['dependency_zips'] = [
208 c['resources_zip'] for c in all_resources_deps] 209 c['resources_zip'] for c in all_resources_deps]
209 config['resources']['extra_package_names'] = [] 210 config['resources']['extra_package_names'] = []
210 211
211 if options.type == 'android_apk': 212 if options.type == 'android_apk':
212 config['resources']['extra_package_names'] = [ 213 config['resources']['extra_package_names'] = [
213 c['package_name'] for c in all_resources_deps if 'package_name' in c] 214 c['package_name'] for c in all_resources_deps if 'package_name' in c]
214 215
215 216
216 # Dependencies for the final dex file of an apk or the standalone .dex.jar 217 # Dependencies for the final dex file of an apk or a 'deps_dex'.
217 # output of a library. 218 if options.type == 'android_apk' or 'deps_dex':
cjhopman 2014/12/09 19:53:55 Should be: if options.type == 'android_apk' or opt
ppi 2014/12/09 21:36:46 Done.
218 if options.type == 'android_apk' or (options.type == "java_library"
219 and options.supports_android):
220 config['final_dex'] = {} 219 config['final_dex'] = {}
221 dex_config = config['final_dex'] 220 dex_config = config['final_dex']
222 # TODO(cjhopman): proguard version 221 # TODO(cjhopman): proguard version
223 dex_deps_files = [c['dex_path'] for c in all_library_deps] 222 dex_deps_files = [c['dex_path'] for c in all_library_deps]
224 dex_config['dependency_dex_files'] = dex_deps_files 223 dex_config['dependency_dex_files'] = dex_deps_files
225 224
226 if options.type == 'android_apk': 225 if options.type == 'android_apk':
227 config['dist_jar'] = { 226 config['dist_jar'] = {
228 'dependency_jars': [ 227 'dependency_jars': [
229 c['jar_path'] for c in all_library_deps 228 c['jar_path'] for c in all_library_deps
(...skipping 26 matching lines...) Expand all
256 build_utils.WriteJson(config, options.build_config, only_if_changed=True) 255 build_utils.WriteJson(config, options.build_config, only_if_changed=True)
257 256
258 if options.depfile: 257 if options.depfile:
259 build_utils.WriteDepfile( 258 build_utils.WriteDepfile(
260 options.depfile, 259 options.depfile,
261 all_deps_config_paths + build_utils.GetPythonDependencies()) 260 all_deps_config_paths + build_utils.GetPythonDependencies())
262 261
263 262
264 if __name__ == '__main__': 263 if __name__ == '__main__':
265 sys.exit(main(sys.argv[1:])) 264 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « no previous file | build/config/android/internal_rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698