#!/usr/bin/env bash
# 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.

# Script for generating kernel files using Dart 2 pipeline: Fasta with
# strong mode enabled.

set -e

# Enable Dart 2.0 fixed-size integers for gen_kernel
DART_VM_FLAGS="--limit-ints-to-64-bits $DART_VM_FLAGS"

function follow_links() {
  file="$1"
  while [ -h "$file" ]; do
    # On Mac OS, readlink -f doesn't work.
    file="$(readlink "$file")"
  done
  echo "$file"
}

# Unlike $0, $BASH_SOURCE points to the absolute path of this file.
PROG_NAME="$(follow_links "$BASH_SOURCE")"

# Handle the case where dart-sdk/bin has been symlinked to.
CUR_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"

SDK_DIR="$CUR_DIR/../../.."

# TODO(kustermann): For windows as well as for hosts running on arm, our
# checked-in dart binaries must be adjusted.
if [[ `uname` == 'Darwin' ]]; then
  DART="$SDK_DIR/tools/sdks/mac/dart-sdk/bin/dart"
  OUT_DIR="$SDK_DIR/xcodebuild"
else
  DART="$SDK_DIR/tools/sdks/linux/dart-sdk/bin/dart"
  OUT_DIR="$SDK_DIR/out"
fi

exec "$DART" $DART_VM_FLAGS "${SDK_DIR}/pkg/vm/bin/gen_kernel.dart" $@
