| #!/usr/bin/env python |
| # Copyright (c) 2017, the Dart 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 os |
| import subprocess |
| import sys |
| import utils |
| |
| usage = """compile_platform.py [options]""" |
| |
| def DisplayBootstrapWarning(): |
| print """\ |
| |
| |
| WARNING: Your system can't run the checked-in Dart SDK. Using the bootstrap |
| Dart executable will make debug builds slow. Please see the Wiki for |
| instructions on replacing the checked-in Dart SDK. |
| |
| https://github.com/dart-lang/sdk/wiki/The-checked-in-SDK-in-tools |
| |
| """ |
| |
| |
| def path(uri_path): |
| args = [ os.path.dirname(__file__), ".." ] + uri_path.split("/") |
| return os.path.normpath(os.path.join(*args)) |
| |
| |
| def main(): |
| verbose = False |
| arguments = [ None ] # Leave room for the Dart VM executable. |
| arguments.append("--packages=" + path(".packages")) |
| arguments.append(path("pkg/front_end/tool/_fasta/compile_platform.dart")) |
| i = 1 # Skip argument #0 which is the script name. |
| dart_executable = None |
| while i < len(sys.argv): |
| argument = sys.argv[i] |
| if argument == "--dart-executable": |
| dart_executable = sys.argv[i + 1] |
| i += 1 |
| elif argument.startswith("--dart-executable="): |
| dart_executable = argument[len("--dart-executable="):] |
| else: |
| if argument == "-v" or argument == "--verbose": |
| verbose = True |
| arguments.append(argument) |
| i += 1 |
| |
| if dart_executable: |
| dart_executable = os.path.abspath(dart_executable) |
| else: |
| if utils.CheckedInSdkCheckExecutable(): |
| dart_executable = utils.CheckedInSdkExecutable() |
| else: |
| DisplayBootstrapWarning() |
| print >> sys.stderr, "ERROR: Can't locate Dart VM executable." |
| return -1 |
| |
| arguments[0] = os.path.abspath(dart_executable) |
| if verbose: |
| print "Running:", " ".join(arguments) |
| return subprocess.call(arguments) |
| |
| |
| if __name__ == "__main__": |
| sys.exit(main()) |