#!/usr/bin/env python # Copyright 2016 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 subprocess import os import sys def main(): parser = argparse.ArgumentParser(description='Package a Flutter application') parser.add_argument('--flutter-root', type=str, required=True, help='The root of the Flutter SDK') parser.add_argument('--flutter-tools', type=str, required=True, help='The executable for the Flutter tool') parser.add_argument('--working-dir', type=str, required=True, help='The directory where to put intermediate files') parser.add_argument('--app-dir', type=str, required=True, help='The root of the app') parser.add_argument('--packages', type=str, required=True, help='The package map to use') parser.add_argument('--snapshot', type=str, required=False, help='Path to application snapshot') parser.add_argument('--dylib', type=str, required=False, help='Path to AOT dylib') parser.add_argument('--output-file', type=str, required=True, help='Where to output application bundle') parser.add_argument('--build-root', type=str, required=True, help='The build\'s root directory') parser.add_argument('--depfile', type=str, required=True, help='Where to output application bundle dependencies') parser.add_argument('--interpreter', type=str, required=True, help='') parser.add_argument('--manifest', type=str, help='The application manifest') args = parser.parse_args() env = os.environ.copy() env['FLUTTER_ROOT'] = args.flutter_root call_args = [ args.flutter_tools, '--working-dir=%s' % args.working_dir, '--packages=%s' % args.packages, '--output-file=%s' % args.output_file, '--header=#!fuchsia %s' % args.interpreter, '--build-root=%s' % args.build_root, '--depfile=%s' % args.depfile, ] if args.snapshot != None: call_args.append('--snapshot=%s' % args.snapshot) if args.dylib != None: call_args.append('--dylib=%s' % args.dylib) if 'manifest' in args: call_args.append('--manifest=%s' % args.manifest) result = subprocess.call(call_args, env=env, cwd=args.app_dir) return result if __name__ == '__main__': sys.exit(main())