#!/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

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/../../.."

. "$CUR_DIR/shared_functions.sh"

if [[ `uname` == 'Darwin' ]]; then
  OUT_DIR="$SDK_DIR/xcodebuild"
else
  OUT_DIR="$SDK_DIR/out"
fi

HOST_ARCH="$(host_arch)"

export DART_CONFIGURATION=${DART_CONFIGURATION:-Release$HOST_ARCH}
TARGET_ARCH="$(parse_target_arch "$DART_CONFIGURATION")"
BUILD_DIR="$OUT_DIR/$DART_CONFIGURATION"

if [ -x "$BUILD_DIR/bootstrap_gen_kernel.exe" ]; then
  DART_VM_OPTIONS="${DART_VM_OPTIONS:+$DART_VM_OPTIONS }${DART_VM_FLAGS}" \
    "$BUILD_DIR/bootstrap_gen_kernel.exe" $@
else
  DART="${SDK_DIR}/tools/sdks/dart-sdk/bin/dart"
  "$DART" $DART_VM_FLAGS "${SDK_DIR}/pkg/vm/bin/gen_kernel.dart" $@
fi
