87 lines
2.6 KiB
Python
Executable file
87 lines
2.6 KiB
Python
Executable file
#!/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())
|
|
|