| Index: build/android/process_resources.py
|
| diff --git a/build/android/process_resources.py b/build/android/process_resources.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..8a46e5c55105ce2747e30987c32948e9f3c5a7fb
|
| --- /dev/null
|
| +++ b/build/android/process_resources.py
|
| @@ -0,0 +1,77 @@
|
| +#!/usr/bin/env python
|
| +#
|
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +"""Process Android library resources to generate R.java and crunched images."""
|
| +
|
| +import optparse
|
| +import os
|
| +import subprocess
|
| +
|
| +
|
| +BUILD_ANDROID_DIR = os.path.dirname(__file__)
|
| +
|
| +
|
| +def ParseArgs():
|
| + """Parses command line options.
|
| +
|
| + Returns:
|
| + An options object as from optparse.OptionsParser.parse_args()
|
| + """
|
| + parser = optparse.OptionParser()
|
| + parser.add_option('--android-sdk', help='path to the Android SDK folder')
|
| + parser.add_option('--android-sdk-tools',
|
| + help='path to the Android SDK platform tools folder')
|
| + parser.add_option('--R-package', help='Java package for generated R.java')
|
| + parser.add_option('--R-dir', help='directory to hold generated R.java')
|
| + parser.add_option('--res-dir', help='directory containing resources')
|
| + parser.add_option('--crunched-res-dir',
|
| + help='directory to hold crunched resources')
|
| + (options, args) = parser.parse_args()
|
| +
|
| + if args:
|
| + parser.error('No positional arguments should be given.')
|
| +
|
| + # Check that required options have been provided.
|
| + required_options = ('android_sdk', 'android_sdk_tools', 'R_package',
|
| + 'R_dir', 'res_dir', 'crunched_res_dir')
|
| + for option_name in required_options:
|
| + if getattr(options, option_name) is None:
|
| + parser.error('--%s is required' % option_name.replace('_', '-'))
|
| +
|
| + return options
|
| +
|
| +
|
| +def main():
|
| + options = ParseArgs()
|
| + android_jar = os.path.join(options.android_sdk, 'android.jar')
|
| + aapt = os.path.join(options.android_sdk_tools, 'aapt')
|
| + dummy_manifest = os.path.join(BUILD_ANDROID_DIR, 'AndroidManifest.xml')
|
| +
|
| + # Generate R.java. This R.java contains non-final constants and is used only
|
| + # while compiling the library jar (e.g. chromium_content.jar). When building
|
| + # an apk, a new R.java file with the correct resource -> ID mappings will be
|
| + # generated by merging the resources from all libraries and the main apk
|
| + # project.
|
| + subprocess.check_call([aapt,
|
| + 'package',
|
| + '-m',
|
| + '--non-constant-id',
|
| + '--custom-package', options.R_package,
|
| + '-M', dummy_manifest,
|
| + '-S', options.res_dir,
|
| + '-I', android_jar,
|
| + '-J', options.R_dir])
|
| +
|
| + # Crunch image resources. This shrinks png files and is necessary for 9-patch
|
| + # images to display correctly.
|
| + subprocess.check_call([aapt,
|
| + 'crunch',
|
| + '-S', options.res_dir,
|
| + '-C', options.crunched_res_dir])
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + main()
|
|
|