| Index: build/android/gyp/write_build_config.py
|
| diff --git a/build/android/gyp/write_build_config.py b/build/android/gyp/write_build_config.py
|
| index 01f9fb347bb3256767a7ccbc80bfafce71c53c3d..67e4a58aee9426590fc196553ebddb6d04316074 100755
|
| --- a/build/android/gyp/write_build_config.py
|
| +++ b/build/android/gyp/write_build_config.py
|
| @@ -66,11 +66,11 @@ def main(argv):
|
| 'dependencies may not write build_config files. Missing build_config '
|
| 'files are handled differently based on the type of this target.')
|
|
|
| - # android_resources options
|
| + # android_resources/apk options
|
| parser.add_option('--srcjar', help='Path to target\'s resources srcjar.')
|
| parser.add_option('--resources-zip', help='Path to target\'s resources zip.')
|
|
|
| - # android_library options
|
| + # android_library/apk options
|
| parser.add_option('--jar-path', help='Path to target\'s jar output.')
|
|
|
| options, args = parser.parse_args(argv)
|
| @@ -78,25 +78,34 @@ def main(argv):
|
| if args:
|
| parser.error('No positional arguments should be given.')
|
|
|
| - required_options = ('build_config', 'type')
|
| - build_utils.CheckOptions(options, parser, required_options)
|
|
|
| if not options.type in [
|
| - 'android_library', 'android_resources']:
|
| + 'android_library', 'android_resources', 'android_apk']:
|
| raise Exception('Unknown type: <%s>' % options.type)
|
|
|
| - if options.type == 'android_library':
|
| - required_options = ('jar_path',)
|
| - build_utils.CheckOptions(options, parser, required_options)
|
|
|
| - possible_deps_configs = build_utils.ParseGypList(
|
| + required_options = ['build_config'] + {
|
| + 'android_library': ['jar_path'],
|
| + 'android_resources': ['resources_zip'],
|
| + 'android_apk': ['jar_path', 'resources_zip']
|
| + }[options.type]
|
| +
|
| + build_utils.CheckOptions(options, parser, required_options)
|
| +
|
| + possible_deps_config_paths = build_utils.ParseGypList(
|
| options.possible_deps_configs)
|
| - for c in possible_deps_configs:
|
| - if not os.path.exists(c):
|
| - # Currently we only allow deps to things that write build_config files.
|
| - raise Exception('Unknown dep type: ' + c)
|
|
|
| - direct_deps_config_paths = possible_deps_configs
|
| +
|
| +
|
| +
|
| + allow_unknown_deps = options.type == 'android_apk'
|
| + unknown_deps = [
|
| + c for c in possible_deps_config_paths if not os.path.exists(c)]
|
| + if unknown_deps and not allow_unknown_deps:
|
| + raise Exception('Unknown deps: ' + unknown_deps)
|
| +
|
| + direct_deps_config_paths = [
|
| + c for c in possible_deps_config_paths if not c in unknown_deps]
|
| all_deps_config_paths = GetAllDepsConfigsInOrder(direct_deps_config_paths)
|
|
|
| direct_deps_configs = [GetDepConfig(p) for p in direct_deps_config_paths]
|
| @@ -115,8 +124,9 @@ def main(argv):
|
| }
|
| deps_info = config['deps_info']
|
|
|
| - if options.type == 'android_library':
|
| + if options.type in ['android_library', 'android_apk']:
|
| javac_classpath = [c['jar_path'] for c in direct_library_deps]
|
| + deps_info['resources_deps'] = [c['path'] for c in all_resources_deps]
|
| deps_info['jar_path'] = options.jar_path
|
| config['javac'] = {
|
| 'classpath': javac_classpath,
|
| @@ -128,10 +138,11 @@ def main(argv):
|
| config['javac']['srcjars'] = [
|
| c['srcjar'] for c in all_resources_deps if 'srcjar' in c]
|
|
|
| - if options.type == 'android_resources':
|
| + if options.type == 'android_resources' or options.type == 'android_apk':
|
| deps_info['resources_zip'] = options.resources_zip
|
| if options.srcjar:
|
| deps_info['srcjar'] = options.srcjar
|
| +
|
| config['resources'] = {}
|
| config['resources']['dependency_zips'] = [
|
| c['resources_zip'] for c in all_resources_deps]
|
|
|