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

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

Issue 2406093002: Fix monochrome not booting issue (Closed)
Patch Set: Created 4 years, 2 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
« no previous file with comments | « build/android/gyp/locale_pak_resources.py ('k') | build/android/resource_sizes.py » ('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 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 for path in runtime_deps_files: 202 for path in runtime_deps_files:
203 with open(path) as f: 203 with open(path) as f:
204 for line in f: 204 for line in f:
205 line = line.rstrip() 205 line = line.rstrip()
206 if not line.endswith('.so'): 206 if not line.endswith('.so'):
207 continue 207 continue
208 ret.append(os.path.normpath(line)) 208 ret.append(os.path.normpath(line))
209 ret.reverse() 209 ret.reverse()
210 return ret 210 return ret
211 211
212
213 def _CreateJavaLibrariesList(library_paths): 212 def _CreateJavaLibrariesList(library_paths):
214 """Returns a java literal array with the "base" library names: 213 """ Create a java literal array with the "base" library names:
215 e.g. libfoo.so -> foo 214 e.g. libfoo.so -> foo
216 """ 215 """
217 return ('{%s}' % ','.join(['"%s"' % s[3:-3] for s in library_paths])) 216 return ('{%s}' % ','.join(['"%s"' % s[3:-3] for s in library_paths]))
218 217
219
220 def _CreateJavaAssetList(assets):
221 """Returns a java literal array from a list of assets in the form src:dst."""
222 return '{%s}' % ','.join(sorted(['"%s"' % a.split(':')[1] for a in assets]))
223
224
225 def main(argv): 218 def main(argv):
226 parser = optparse.OptionParser() 219 parser = optparse.OptionParser()
227 build_utils.AddDepfileOption(parser) 220 build_utils.AddDepfileOption(parser)
228 parser.add_option('--build-config', help='Path to build_config output.') 221 parser.add_option('--build-config', help='Path to build_config output.')
229 parser.add_option( 222 parser.add_option(
230 '--type', 223 '--type',
231 help='Type of this target (e.g. android_library).') 224 help='Type of this target (e.g. android_library).')
232 parser.add_option( 225 parser.add_option(
233 '--deps-configs', 226 '--deps-configs',
234 help='List of paths for dependency\'s build_config files. ') 227 help='List of paths for dependency\'s build_config files. ')
235 228
236 # android_resources options 229 # android_resources options
237 parser.add_option('--srcjar', help='Path to target\'s resources srcjar.') 230 parser.add_option('--srcjar', help='Path to target\'s resources srcjar.')
238 parser.add_option('--resources-zip', help='Path to target\'s resources zip.') 231 parser.add_option('--resources-zip', help='Path to target\'s resources zip.')
239 parser.add_option('--r-text', help='Path to target\'s R.txt file.') 232 parser.add_option('--r-text', help='Path to target\'s R.txt file.')
240 parser.add_option('--package-name', 233 parser.add_option('--package-name',
241 help='Java package name for these resources.') 234 help='Java package name for these resources.')
242 parser.add_option('--android-manifest', help='Path to android manifest.') 235 parser.add_option('--android-manifest', help='Path to android manifest.')
236 parser.add_option('--is-locale-resource', action='store_true',
237 help='Whether it is locale resource.')
243 parser.add_option('--resource-dirs', action='append', default=[], 238 parser.add_option('--resource-dirs', action='append', default=[],
244 help='GYP-list of resource dirs') 239 help='GYP-list of resource dirs')
245 240
246 # android_assets options 241 # android_assets options
247 parser.add_option('--asset-sources', help='List of asset sources.') 242 parser.add_option('--asset-sources', help='List of asset sources.')
248 parser.add_option('--asset-renaming-sources', 243 parser.add_option('--asset-renaming-sources',
249 help='List of asset sources with custom destinations.') 244 help='List of asset sources with custom destinations.')
250 parser.add_option('--asset-renaming-destinations', 245 parser.add_option('--asset-renaming-destinations',
251 help='List of asset custom destinations.') 246 help='List of asset custom destinations.')
252 parser.add_option('--disable-asset-compression', action='store_true', 247 parser.add_option('--disable-asset-compression', action='store_true',
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 283
289 parser.add_option('--tested-apk-config', 284 parser.add_option('--tested-apk-config',
290 help='Path to the build config of the tested apk (for an instrumentation ' 285 help='Path to the build config of the tested apk (for an instrumentation '
291 'test apk).') 286 'test apk).')
292 parser.add_option('--proguard-enabled', action='store_true', 287 parser.add_option('--proguard-enabled', action='store_true',
293 help='Whether proguard is enabled for this apk.') 288 help='Whether proguard is enabled for this apk.')
294 parser.add_option('--proguard-configs', 289 parser.add_option('--proguard-configs',
295 help='GYP-list of proguard flag files to use in final apk.') 290 help='GYP-list of proguard flag files to use in final apk.')
296 parser.add_option('--proguard-info', 291 parser.add_option('--proguard-info',
297 help='Path to the proguard .info output for this apk.') 292 help='Path to the proguard .info output for this apk.')
293 parser.add_option('--has-alternative-locale-resource', action='store_true',
294 help='Whether there is alternative-locale-resource in direct deps')
298 parser.add_option('--fail', 295 parser.add_option('--fail',
299 help='GYP-list of error message lines to fail with.') 296 help='GYP-list of error message lines to fail with.')
300 297
301 options, args = parser.parse_args(argv) 298 options, args = parser.parse_args(argv)
302 299
303 if args: 300 if args:
304 parser.error('No positional arguments should be given.') 301 parser.error('No positional arguments should be given.')
305 if options.fail: 302 if options.fail:
306 parser.error('\n'.join(build_utils.ParseGnList(options.fail))) 303 parser.error('\n'.join(build_utils.ParseGnList(options.fail)))
307 304
(...skipping 27 matching lines...) Expand all
335 raise Exception( 332 raise Exception(
336 '--supports-android is required when using --requires-android') 333 '--supports-android is required when using --requires-android')
337 334
338 direct_deps_config_paths = build_utils.ParseGnList(options.deps_configs) 335 direct_deps_config_paths = build_utils.ParseGnList(options.deps_configs)
339 direct_deps_config_paths = _FilterDepsPaths(direct_deps_config_paths, 336 direct_deps_config_paths = _FilterDepsPaths(direct_deps_config_paths,
340 options.type) 337 options.type)
341 338
342 deps = Deps(direct_deps_config_paths) 339 deps = Deps(direct_deps_config_paths)
343 all_inputs = deps.AllConfigPaths() 340 all_inputs = deps.AllConfigPaths()
344 341
342 # Remove other locale resources if there is alternative_locale_resource in
343 # direct deps.
344 if options.has_alternative_locale_resource:
345 alternative = [r['path'] for r in deps.Direct('android_resources')
346 if r.get('is_locale_resource')]
347 # We can only have one locale resources in direct deps.
348 if len(alternative) != 1:
349 raise Exception('The number of locale resource in direct deps is wrong %d'
350 % len(alternative))
351 unwanted = [r['path'] for r in deps.All('android_resources')
352 if r.get('is_locale_resource') and r['path'] not in alternative]
353 for p in unwanted:
354 deps.RemoveNonDirectDep(p)
355
356
345 direct_library_deps = deps.Direct('java_library') 357 direct_library_deps = deps.Direct('java_library')
346 all_library_deps = deps.All('java_library') 358 all_library_deps = deps.All('java_library')
347 359
348 all_resources_deps = deps.All('android_resources') 360 all_resources_deps = deps.All('android_resources')
349 # Resources should be ordered with the highest-level dependency first so that 361 # Resources should be ordered with the highest-level dependency first so that
350 # overrides are done correctly. 362 # overrides are done correctly.
351 all_resources_deps.reverse() 363 all_resources_deps.reverse()
352 364
353 if options.type == 'android_apk' and options.tested_apk_config: 365 if options.type == 'android_apk' and options.tested_apk_config:
354 tested_apk_deps = Deps([options.tested_apk_config]) 366 tested_apk_deps = Deps([options.tested_apk_config])
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 deps_info['resources_zip'] = options.resources_zip 478 deps_info['resources_zip'] = options.resources_zip
467 if options.srcjar: 479 if options.srcjar:
468 deps_info['srcjar'] = options.srcjar 480 deps_info['srcjar'] = options.srcjar
469 if options.android_manifest: 481 if options.android_manifest:
470 manifest = AndroidManifest(options.android_manifest) 482 manifest = AndroidManifest(options.android_manifest)
471 deps_info['package_name'] = manifest.GetPackageName() 483 deps_info['package_name'] = manifest.GetPackageName()
472 if options.package_name: 484 if options.package_name:
473 deps_info['package_name'] = options.package_name 485 deps_info['package_name'] = options.package_name
474 if options.r_text: 486 if options.r_text:
475 deps_info['r_text'] = options.r_text 487 deps_info['r_text'] = options.r_text
488 if options.is_locale_resource:
489 deps_info['is_locale_resource'] = True
476 490
477 deps_info['resources_dirs'] = [] 491 deps_info['resources_dirs'] = []
478 if options.resource_dirs: 492 if options.resource_dirs:
479 for gyp_list in options.resource_dirs: 493 for gyp_list in options.resource_dirs:
480 deps_info['resources_dirs'].extend(build_utils.ParseGnList(gyp_list)) 494 deps_info['resources_dirs'].extend(build_utils.ParseGnList(gyp_list))
481 495
482 if options.supports_android and options.type in ('android_apk', 496 if options.supports_android and options.type in ('android_apk',
483 'java_library'): 497 'java_library'):
484 # Lint all resources that are not already linted by a dependent library. 498 # Lint all resources that are not already linted by a dependent library.
485 owned_resource_dirs = set() 499 owned_resource_dirs = set()
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 651
638 all_inputs.extend(runtime_deps_files) 652 all_inputs.extend(runtime_deps_files)
639 config['native'] = { 653 config['native'] = {
640 'libraries': library_paths, 654 'libraries': library_paths,
641 'secondary_abi_libraries': secondary_abi_library_paths, 655 'secondary_abi_libraries': secondary_abi_library_paths,
642 'java_libraries_list': java_libraries_list, 656 'java_libraries_list': java_libraries_list,
643 'secondary_abi_java_libraries_list': secondary_abi_java_libraries_list, 657 'secondary_abi_java_libraries_list': secondary_abi_java_libraries_list,
644 } 658 }
645 config['assets'], config['uncompressed_assets'] = ( 659 config['assets'], config['uncompressed_assets'] = (
646 _MergeAssets(deps.All('android_assets'))) 660 _MergeAssets(deps.All('android_assets')))
647 config['compressed_assets_java_list'] = (
648 _CreateJavaAssetList(config['assets']))
649 config['uncompressed_assets_java_list'] = (
650 _CreateJavaAssetList(config['uncompressed_assets']))
651 661
652 build_utils.WriteJson(config, options.build_config, only_if_changed=True) 662 build_utils.WriteJson(config, options.build_config, only_if_changed=True)
653 663
654 if options.depfile: 664 if options.depfile:
655 build_utils.WriteDepfile(options.depfile, options.build_config, all_inputs) 665 build_utils.WriteDepfile(options.depfile, options.build_config, all_inputs)
656 666
657 667
658 if __name__ == '__main__': 668 if __name__ == '__main__':
659 sys.exit(main(sys.argv[1:])) 669 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « build/android/gyp/locale_pak_resources.py ('k') | build/android/resource_sizes.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698