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

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

Issue 1846113002: 🍱 Pass build scripts .interface.jar directly rather than --use-ijars (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 def _FilterUnwantedDepsPaths(dep_paths, target_type): 170 def _FilterUnwantedDepsPaths(dep_paths, target_type):
171 # Don't allow root targets to be considered as a dep. 171 # Don't allow root targets to be considered as a dep.
172 ret = [p for p in dep_paths if GetDepConfig(p)['type'] not in _ROOT_TYPES] 172 ret = [p for p in dep_paths if GetDepConfig(p)['type'] not in _ROOT_TYPES]
173 173
174 # Don't allow java libraries to cross through assets/resources. 174 # Don't allow java libraries to cross through assets/resources.
175 if target_type in _RESOURCE_TYPES: 175 if target_type in _RESOURCE_TYPES:
176 ret = [p for p in ret if GetDepConfig(p)['type'] in _RESOURCE_TYPES] 176 ret = [p for p in ret if GetDepConfig(p)['type'] in _RESOURCE_TYPES]
177 return ret 177 return ret
178 178
179 179
180 def _AsInterfaceJar(jar_path):
181 return jar_path[:-3] + 'interface.jar'
182
183
180 def main(argv): 184 def main(argv):
181 parser = optparse.OptionParser() 185 parser = optparse.OptionParser()
182 build_utils.AddDepfileOption(parser) 186 build_utils.AddDepfileOption(parser)
183 parser.add_option('--build-config', help='Path to build_config output.') 187 parser.add_option('--build-config', help='Path to build_config output.')
184 parser.add_option( 188 parser.add_option(
185 '--type', 189 '--type',
186 help='Type of this target (e.g. android_library).') 190 help='Type of this target (e.g. android_library).')
187 parser.add_option( 191 parser.add_option(
188 '--possible-deps-configs', 192 '--possible-deps-configs',
189 help='List of paths for dependency\'s build_config files. Some ' 193 help='List of paths for dependency\'s build_config files. Some '
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 ' apks if it\'s enabled for the tested apk') 462 ' apks if it\'s enabled for the tested apk')
459 463
460 # Dependencies for the final dex file of an apk or a 'deps_dex'. 464 # Dependencies for the final dex file of an apk or a 'deps_dex'.
461 if options.type in ['android_apk', 'deps_dex']: 465 if options.type in ['android_apk', 'deps_dex']:
462 config['final_dex'] = {} 466 config['final_dex'] = {}
463 dex_config = config['final_dex'] 467 dex_config = config['final_dex']
464 dex_config['dependency_dex_files'] = deps_dex_files 468 dex_config['dependency_dex_files'] = deps_dex_files
465 469
466 if options.type in ('java_binary', 'java_library', 'android_apk'): 470 if options.type in ('java_binary', 'java_library', 'android_apk'):
467 config['javac']['classpath'] = javac_classpath 471 config['javac']['classpath'] = javac_classpath
472 config['javac']['interface_classpath'] = [
473 _AsInterfaceJar(p) for p in javac_classpath]
468 config['java'] = { 474 config['java'] = {
469 'full_classpath': java_full_classpath 475 'full_classpath': java_full_classpath
470 } 476 }
471 477
472 if options.type == 'android_apk': 478 if options.type == 'android_apk':
479 dependency_jars = [c['jar_path'] for c in all_library_deps]
480 all_interface_jars = [
481 _AsInterfaceJar(p) for p in dependency_jars + [options.jar_path]]
473 config['dist_jar'] = { 482 config['dist_jar'] = {
474 'dependency_jars': [ 483 'dependency_jars': dependency_jars,
475 c['jar_path'] for c in all_library_deps 484 'all_interface_jars': all_interface_jars,
476 ]
477 } 485 }
478 manifest = AndroidManifest(options.android_manifest) 486 manifest = AndroidManifest(options.android_manifest)
479 deps_info['package_name'] = manifest.GetPackageName() 487 deps_info['package_name'] = manifest.GetPackageName()
480 if not options.tested_apk_config and manifest.GetInstrumentation(): 488 if not options.tested_apk_config and manifest.GetInstrumentation():
481 # This must then have instrumentation only for itself. 489 # This must then have instrumentation only for itself.
482 manifest.CheckInstrumentation(manifest.GetPackageName()) 490 manifest.CheckInstrumentation(manifest.GetPackageName())
483 491
484 library_paths = [] 492 library_paths = []
485 java_libraries_list_holder = [None] 493 java_libraries_list_holder = [None]
486 libraries = build_utils.ParseGypList(options.native_libs or '[]') 494 libraries = build_utils.ParseGypList(options.native_libs or '[]')
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 _MergeAssets(deps.All('android_assets'))) 529 _MergeAssets(deps.All('android_assets')))
522 530
523 build_utils.WriteJson(config, options.build_config, only_if_changed=True) 531 build_utils.WriteJson(config, options.build_config, only_if_changed=True)
524 532
525 if options.depfile: 533 if options.depfile:
526 build_utils.WriteDepfile(options.depfile, all_inputs) 534 build_utils.WriteDepfile(options.depfile, all_inputs)
527 535
528 536
529 if __name__ == '__main__': 537 if __name__ == '__main__':
530 sys.exit(main(sys.argv[1:])) 538 sys.exit(main(sys.argv[1:]))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698