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

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

Issue 1462363002: [Android] Make generated test scripts pass apk paths. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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/gyp/create_test_runner_script.py ('k') | build/android/test_runner.gypi » ('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 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 parser.add_option('--bypass-platform-checks', action='store_true', 182 parser.add_option('--bypass-platform-checks', action='store_true',
183 help='Bypass checks for support/require Android platform.') 183 help='Bypass checks for support/require Android platform.')
184 184
185 # android library options 185 # android library options
186 parser.add_option('--dex-path', help='Path to target\'s dex output.') 186 parser.add_option('--dex-path', help='Path to target\'s dex output.')
187 187
188 # native library options 188 # native library options
189 parser.add_option('--native-libs', help='List of top-level native libs.') 189 parser.add_option('--native-libs', help='List of top-level native libs.')
190 parser.add_option('--readelf-path', help='Path to toolchain\'s readelf.') 190 parser.add_option('--readelf-path', help='Path to toolchain\'s readelf.')
191 191
192 # apk options
193 parser.add_option('--apk-path', help='Path to the target\'s apk output.')
194
192 parser.add_option('--tested-apk-config', 195 parser.add_option('--tested-apk-config',
193 help='Path to the build config of the tested apk (for an instrumentation ' 196 help='Path to the build config of the tested apk (for an instrumentation '
194 'test apk).') 197 'test apk).')
195 parser.add_option('--proguard-enabled', action='store_true', 198 parser.add_option('--proguard-enabled', action='store_true',
196 help='Whether proguard is enabled for this apk.') 199 help='Whether proguard is enabled for this apk.')
197 parser.add_option('--proguard-info', 200 parser.add_option('--proguard-info',
198 help='Path to the proguard .info output for this apk.') 201 help='Path to the proguard .info output for this apk.')
199 202
200 options, args = parser.parse_args(argv) 203 options, args = parser.parse_args(argv)
201 204
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 raise Exception('Not all deps support the Android platform: ' + 287 raise Exception('Not all deps support the Android platform: ' +
285 str(deps_not_support_android)) 288 str(deps_not_support_android))
286 289
287 if options.type in ['java_library', 'android_apk']: 290 if options.type in ['java_library', 'android_apk']:
288 javac_classpath = [c['jar_path'] for c in direct_library_deps] 291 javac_classpath = [c['jar_path'] for c in direct_library_deps]
289 java_full_classpath = [c['jar_path'] for c in all_library_deps] 292 java_full_classpath = [c['jar_path'] for c in all_library_deps]
290 deps_info['resources_deps'] = [c['path'] for c in all_resources_deps] 293 deps_info['resources_deps'] = [c['path'] for c in all_resources_deps]
291 deps_info['jar_path'] = options.jar_path 294 deps_info['jar_path'] = options.jar_path
292 if options.type == 'android_apk' or options.supports_android: 295 if options.type == 'android_apk' or options.supports_android:
293 deps_info['dex_path'] = options.dex_path 296 deps_info['dex_path'] = options.dex_path
297 if options.type == 'android_apk':
298 deps_info['apk_path'] = options.apk_path
294 config['javac'] = { 299 config['javac'] = {
295 'classpath': javac_classpath, 300 'classpath': javac_classpath,
296 } 301 }
297 config['java'] = { 302 config['java'] = {
298 'full_classpath': java_full_classpath 303 'full_classpath': java_full_classpath
299 } 304 }
300 305
301 if options.type == 'java_library': 306 if options.type == 'java_library':
302 # Only resources might have srcjars (normal srcjar targets are listed in 307 # Only resources might have srcjars (normal srcjar targets are listed in
303 # srcjar_deps). A resource's srcjar contains the R.java file for those 308 # srcjar_deps). A resource's srcjar contains the R.java file for those
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 382
378 tested_apk_config = GetDepConfig(options.tested_apk_config) 383 tested_apk_config = GetDepConfig(options.tested_apk_config)
379 expected_tested_package = tested_apk_config['package_name'] 384 expected_tested_package = tested_apk_config['package_name']
380 AndroidManifest(options.android_manifest).CheckInstrumentation( 385 AndroidManifest(options.android_manifest).CheckInstrumentation(
381 expected_tested_package) 386 expected_tested_package)
382 if tested_apk_config['proguard_enabled']: 387 if tested_apk_config['proguard_enabled']:
383 assert proguard_enabled, ('proguard must be enabled for instrumentation' 388 assert proguard_enabled, ('proguard must be enabled for instrumentation'
384 ' apks if it\'s enabled for the tested apk') 389 ' apks if it\'s enabled for the tested apk')
385 proguard_config['tested_apk_info'] = tested_apk_config['proguard_info'] 390 proguard_config['tested_apk_info'] = tested_apk_config['proguard_info']
386 391
392 deps_info['tested_apk_path'] = tested_apk_config['apk_path']
393
387 # Dependencies for the final dex file of an apk or a 'deps_dex'. 394 # Dependencies for the final dex file of an apk or a 'deps_dex'.
388 if options.type in ['android_apk', 'deps_dex']: 395 if options.type in ['android_apk', 'deps_dex']:
389 config['final_dex'] = {} 396 config['final_dex'] = {}
390 dex_config = config['final_dex'] 397 dex_config = config['final_dex']
391 if proguard_enabled: 398 if proguard_enabled:
392 # When proguard is enabled, the proguarded jar contains the code for all 399 # When proguard is enabled, the proguarded jar contains the code for all
393 # of the dependencies. 400 # of the dependencies.
394 deps_dex_files = [] 401 deps_dex_files = []
395 dex_config['dependency_dex_files'] = deps_dex_files 402 dex_config['dependency_dex_files'] = deps_dex_files
396 403
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 build_utils.WriteJson(config, options.build_config, only_if_changed=True) 454 build_utils.WriteJson(config, options.build_config, only_if_changed=True)
448 455
449 if options.depfile: 456 if options.depfile:
450 build_utils.WriteDepfile( 457 build_utils.WriteDepfile(
451 options.depfile, 458 options.depfile,
452 deps.AllConfigPaths() + build_utils.GetPythonDependencies()) 459 deps.AllConfigPaths() + build_utils.GetPythonDependencies())
453 460
454 461
455 if __name__ == '__main__': 462 if __name__ == '__main__':
456 sys.exit(main(sys.argv[1:])) 463 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « build/android/gyp/create_test_runner_script.py ('k') | build/android/test_runner.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698