| #!/usr/bin/env python |
| |
| # Copyright 2017 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. |
| |
| """Writes a .json file with the per-apk details for an incremental install.""" |
| |
| import argparse |
| import json |
| import os |
| import sys |
| |
| sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, 'gyp')) |
| |
| from util import build_utils |
| |
| |
| def _ParseArgs(args): |
| args = build_utils.ExpandFileArgs(args) |
| parser = argparse.ArgumentParser() |
| parser.add_argument('--output-path', |
| help='Output path for .json file.', |
| required=True) |
| parser.add_argument('--apk-path', |
| help='Path to .apk relative to output directory.', |
| required=True) |
| parser.add_argument('--split', |
| action='append', |
| dest='split_globs', |
| default=[], |
| help='A glob matching the apk splits. ' |
| 'Can be specified multiple times.') |
| parser.add_argument( |
| '--native-libs', |
| action='append', |
| help='GN-list of paths to native libraries relative to ' |
| 'output directory. Can be repeated.') |
| parser.add_argument( |
| '--dex-files', help='GN-list of dex paths relative to output directory.') |
| parser.add_argument('--show-proguard-warning', |
| action='store_true', |
| default=False, |
| help='Print a warning about proguard being disabled') |
| |
| options = parser.parse_args(args) |
| options.dex_files = build_utils.ParseGnList(options.dex_files) |
| options.native_libs = build_utils.ParseGnList(options.native_libs) |
| return options |
| |
| |
| def main(args): |
| options = _ParseArgs(args) |
| |
| data = { |
| 'apk_path': options.apk_path, |
| 'native_libs': options.native_libs, |
| 'dex_files': options.dex_files, |
| 'show_proguard_warning': options.show_proguard_warning, |
| 'split_globs': options.split_globs, |
| } |
| |
| with build_utils.AtomicOutput(options.output_path, mode='w+') as f: |
| json.dump(data, f, indent=2, sort_keys=True) |
| |
| |
| if __name__ == '__main__': |
| main(sys.argv[1:]) |