#!/usr/bin/env python # Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file # for details. All rights reserved. Use of this source code is governed by a # BSD-style license that can be found in the LICENSE file. import d8 import gmscore_data import optparse import os import sys def ParseOptions(): result = optparse.OptionParser() result.add_option('--out', help = '', default = os.getcwd()) result.add_option('--no-build', help = '', default = False, action = 'store_true') result.add_option('--no-debug', help = 'Run without debug asserts.', default = False, action = 'store_true') result.add_option('--version', help = '', default = 'v9', choices = ['v9', 'v10']) result.add_option('--type', help = '', default = 'proguarded', choices = ['proguarded', 'deploy']) result.add_option('--d8-flags', help = 'Additional option(s) for D8. ' + 'If passing several options use a quoted string.') result.add_option('--track-memory-to-file', help = 'Track how much memory the jvm is using while ' + ' compiling. Output to the specified file.') result.add_option('--profile', help = 'Profile D8 run.', default = False, action = 'store_true') result.add_option('--dump-args-file', help = 'Dump a file with the arguments for the specified ' + 'configuration. For use as a @ argument to perform ' + 'the run.') return result.parse_args() def main(): (options, args) = ParseOptions() outdir = options.out version = gmscore_data.VERSIONS[options.version] values = version[options.type] inputs = values['inputs'] args.extend(['--output', outdir]) if not os.path.exists(outdir): os.makedirs(outdir) if options.d8_flags: args.extend(options.d8_flags.split(' ')) args.extend(inputs) if options.dump_args_file: with open(options.dump_args_file, 'w') as args_file: args_file.writelines([arg + os.linesep for arg in args]) else: d8.run(args, not options.no_build, not options.no_debug, options.profile, options.track_memory_to_file) if __name__ == '__main__': sys.exit(main())