blob: 9f3b7360f7132bfd7281f4881f497c620ecc4502 [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2015 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.
import argparse
import json
import os
import sys
from util import build_utils
_GCC_PREPROCESS_PATH = os.path.join(
os.path.dirname(__file__), 'gcc_preprocess.py')
def ParseArgs():
parser = argparse.ArgumentParser()
parser.add_argument('--configuration-name', required=True,
help='The build CONFIGURATION_NAME.')
parser.add_argument('--enable-multidex', action='store_true', default=False,
help='If passed, multidex may be enabled.')
parser.add_argument('--enabled-configurations', default=[],
help='The configuration(s) for which multidex should be '
'enabled. If not specified and --enable-multidex is '
'passed, multidex will be enabled for all '
'configurations.')
parser.add_argument('--multidex-configuration-path', required=True,
help='The path to which the multidex configuration JSON '
'should be saved.')
parser.add_argument('--multidex-config-java-file', required=True)
parser.add_argument('--multidex-config-java-stamp', required=True)
parser.add_argument('--multidex-config-java-template', required=True)
args = parser.parse_args()
if args.enabled_configurations:
args.enabled_configurations = build_utils.ParseGypList(
args.enabled_configurations)
return args
def _WriteConfigJson(multidex_enabled, multidex_configuration_path):
config = {
'enabled': multidex_enabled,
}
with open(multidex_configuration_path, 'w') as f:
f.write(json.dumps(config))
def _GenerateMultidexConfigJava(multidex_enabled, args):
gcc_preprocess_cmd = [
sys.executable, _GCC_PREPROCESS_PATH,
'--include-path=',
'--template', args.multidex_config_java_template,
'--stamp', args.multidex_config_java_stamp,
'--output', args.multidex_config_java_file,
]
if multidex_enabled:
gcc_preprocess_cmd += [
'--defines', 'ENABLE_MULTIDEX',
]
build_utils.CheckOutput(gcc_preprocess_cmd)
def main():
args = ParseArgs()
multidex_enabled = (
args.enable_multidex
and (not args.enabled_configurations
or args.configuration_name in args.enabled_configurations))
_WriteConfigJson(multidex_enabled, args.multidex_configuration_path)
_GenerateMultidexConfigJava(multidex_enabled, args)
return 0
if __name__ == '__main__':
sys.exit(main())