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

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

Issue 2508553002: generate_gradle.py: Add support for junit and java_binary targets (Closed)
Patch Set: update docs/android_studio.md to no long say junit doesn't work 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 | « build/android/gradle/generate_gradle.py ('k') | 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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 113
114 def AllConfigPaths(self): 114 def AllConfigPaths(self):
115 return self.all_deps_config_paths 115 return self.all_deps_config_paths
116 116
117 def RemoveNonDirectDep(self, path): 117 def RemoveNonDirectDep(self, path):
118 if path in self.direct_deps_config_paths: 118 if path in self.direct_deps_config_paths:
119 raise Exception('Cannot remove direct dep.') 119 raise Exception('Cannot remove direct dep.')
120 self.all_deps_config_paths.remove(path) 120 self.all_deps_config_paths.remove(path)
121 self.all_deps_configs.remove(GetDepConfig(path)) 121 self.all_deps_configs.remove(GetDepConfig(path))
122 122
123 def PrebuiltJarPaths(self): 123 def GradlePrebuiltJarPaths(self):
124 ret = [] 124 ret = []
125 for config in self.Direct('java_library'): 125
126 if config['is_prebuilt']: 126 def helper(cur):
127 ret.append(config['jar_path']) 127 for config in cur.Direct('java_library'):
128 ret.extend(Deps(config['deps_configs']).PrebuiltJarPaths()) 128 if config['is_prebuilt'] or config['gradle_treat_as_prebuilt']:
129 if config['jar_path'] not in ret:
130 ret.append(config['jar_path'])
131
132 helper(self)
133 return ret
134
135 def GradleLibraryProjectDeps(self):
136 ret = []
137
138 def helper(cur):
139 for config in cur.Direct('java_library'):
140 if config['is_prebuilt']:
141 pass
142 elif config['gradle_treat_as_prebuilt']:
143 helper(Deps(config['deps_configs']))
144 elif config not in ret:
145 ret.append(config)
146
147 helper(self)
129 return ret 148 return ret
130 149
131 150
132 def _MergeAssets(all_assets): 151 def _MergeAssets(all_assets):
133 """Merges all assets from the given deps. 152 """Merges all assets from the given deps.
134 153
135 Returns: 154 Returns:
136 A tuple of lists: (compressed, uncompressed) 155 A tuple of lists: (compressed, uncompressed)
137 Each tuple entry is a list of "srcPath:zipPath". srcPath is the path of the 156 Each tuple entry is a list of "srcPath:zipPath". srcPath is the path of the
138 asset to add, and zipPath is the location within the zip (excluding assets/ 157 asset to add, and zipPath is the location within the zip (excluding assets/
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 help='GYP-list of .srcjars that have been included in this java_library.') 280 help='GYP-list of .srcjars that have been included in this java_library.')
262 parser.add_option('--supports-android', action='store_true', 281 parser.add_option('--supports-android', action='store_true',
263 help='Whether this library supports running on the Android platform.') 282 help='Whether this library supports running on the Android platform.')
264 parser.add_option('--requires-android', action='store_true', 283 parser.add_option('--requires-android', action='store_true',
265 help='Whether this library requires running on the Android platform.') 284 help='Whether this library requires running on the Android platform.')
266 parser.add_option('--bypass-platform-checks', action='store_true', 285 parser.add_option('--bypass-platform-checks', action='store_true',
267 help='Bypass checks for support/require Android platform.') 286 help='Bypass checks for support/require Android platform.')
268 parser.add_option('--extra-classpath-jars', 287 parser.add_option('--extra-classpath-jars',
269 help='GYP-list of .jar files to include on the classpath when compiling, ' 288 help='GYP-list of .jar files to include on the classpath when compiling, '
270 'but not to include in the final binary.') 289 'but not to include in the final binary.')
290 parser.add_option('--gradle-treat-as-prebuilt', action='store_true',
291 help='Whether this library should be treated as a prebuilt library by '
292 'generate_gradle.py.')
293 parser.add_option('--main-class', help='Java class for java_binary targets.')
271 294
272 # android library options 295 # android library options
273 parser.add_option('--dex-path', help='Path to target\'s dex output.') 296 parser.add_option('--dex-path', help='Path to target\'s dex output.')
274 297
275 # native library options 298 # native library options
276 parser.add_option('--shared-libraries-runtime-deps', 299 parser.add_option('--shared-libraries-runtime-deps',
277 help='Path to file containing runtime deps for shared ' 300 help='Path to file containing runtime deps for shared '
278 'libraries.') 301 'libraries.')
279 parser.add_option('--secondary-abi-shared-libraries-runtime-deps', 302 parser.add_option('--secondary-abi-shared-libraries-runtime-deps',
280 help='Path to file containing runtime deps for secondary ' 303 help='Path to file containing runtime deps for secondary '
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 }, 392 },
370 # Info needed only by generate_gradle.py. 393 # Info needed only by generate_gradle.py.
371 'gradle': {} 394 'gradle': {}
372 } 395 }
373 deps_info = config['deps_info'] 396 deps_info = config['deps_info']
374 gradle = config['gradle'] 397 gradle = config['gradle']
375 398
376 # Required for generating gradle files. 399 # Required for generating gradle files.
377 if options.type == 'java_library': 400 if options.type == 'java_library':
378 deps_info['is_prebuilt'] = is_java_prebuilt 401 deps_info['is_prebuilt'] = is_java_prebuilt
402 deps_info['gradle_treat_as_prebuilt'] = options.gradle_treat_as_prebuilt
379 403
380 if options.android_manifest: 404 if options.android_manifest:
381 gradle['android_manifest'] = options.android_manifest 405 gradle['android_manifest'] = options.android_manifest
382 if options.type in ('java_binary', 'java_library', 'android_apk'): 406 if options.type in ('java_binary', 'java_library', 'android_apk'):
383 if options.java_sources_file: 407 if options.java_sources_file:
384 gradle['java_sources_file'] = options.java_sources_file 408 gradle['java_sources_file'] = options.java_sources_file
385 if options.bundled_srcjars: 409 if options.bundled_srcjars:
386 gradle['bundled_srcjars'] = ( 410 gradle['bundled_srcjars'] = (
387 build_utils.ParseGnList(options.bundled_srcjars)) 411 build_utils.ParseGnList(options.bundled_srcjars))
388 412
389 gradle['dependent_prebuilt_jars'] = deps.PrebuiltJarPaths()
390
391 gradle['dependent_android_projects'] = [] 413 gradle['dependent_android_projects'] = []
392 gradle['dependent_java_projects'] = [] 414 gradle['dependent_java_projects'] = []
393 for c in direct_library_deps: 415 gradle['dependent_prebuilt_jars'] = deps.GradlePrebuiltJarPaths()
394 if not c['is_prebuilt']: 416
395 if c['requires_android']: 417 if options.main_class:
396 gradle['dependent_android_projects'].append(c['path']) 418 gradle['main_class'] = options.main_class
397 else: 419
398 gradle['dependent_java_projects'].append(c['path']) 420 for c in deps.GradleLibraryProjectDeps():
421 if c['requires_android']:
422 gradle['dependent_android_projects'].append(c['path'])
423 else:
424 gradle['dependent_java_projects'].append(c['path'])
399 425
400 426
401 if (options.type in ('java_binary', 'java_library') and 427 if (options.type in ('java_binary', 'java_library') and
402 not options.bypass_platform_checks): 428 not options.bypass_platform_checks):
403 deps_info['requires_android'] = options.requires_android 429 deps_info['requires_android'] = options.requires_android
404 deps_info['supports_android'] = options.supports_android 430 deps_info['supports_android'] = options.supports_android
405 431
406 deps_require_android = (all_resources_deps + 432 deps_require_android = (all_resources_deps +
407 [d['name'] for d in all_library_deps if d['requires_android']]) 433 [d['name'] for d in all_library_deps if d['requires_android']])
408 deps_not_support_android = ( 434 deps_not_support_android = (
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 _CreateLocalePaksAssetJavaList(config['uncompressed_assets'])) 678 _CreateLocalePaksAssetJavaList(config['uncompressed_assets']))
653 679
654 build_utils.WriteJson(config, options.build_config, only_if_changed=True) 680 build_utils.WriteJson(config, options.build_config, only_if_changed=True)
655 681
656 if options.depfile: 682 if options.depfile:
657 build_utils.WriteDepfile(options.depfile, options.build_config, all_inputs) 683 build_utils.WriteDepfile(options.depfile, options.build_config, all_inputs)
658 684
659 685
660 if __name__ == '__main__': 686 if __name__ == '__main__':
661 sys.exit(main(sys.argv[1:])) 687 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « build/android/gradle/generate_gradle.py ('k') | build/config/android/internal_rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698