#!/usr/bin/env bash
# Copyright (c) 2019, 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.

set -e

FILE="runtime/vm/compiler/runtime_offsets_extracted.h"

# Make sure we're running in the SDK directory.
if ! test -f "$FILE"; then
  echo "Couldn't find $FILE"
  echo "Make sure to run this script from the Dart SDK directory."
  exit 1
fi

# We're regenerating the file, but we want to keep all the comments etc at the
# top of the file. So just delete everything after the first "#if defined".
LINE=$(grep "#if defined" "$FILE" -n | head -n 1 | sed "s/^\([0-9]*\):.*/\1/")
TEMP="${FILE}.temp"
head -n $(expr $LINE - 1) "$FILE" >"$TEMP"

# Run offsets_extractor for every architecture and append the results.
run() {
  echo "" >>"$TEMP"
  tools/gn.py --mode=release --arch=$1
  tools/build.py --mode=release --arch=$1 offsets_extractor
  out/$2/offsets_extractor >>"$TEMP"
}
run simarm ReleaseSIMARM
run x64 ReleaseX64
run ia32 ReleaseIA32
run simarm64 ReleaseSIMARM64
run simdbc64 ReleaseSIMDBC64
run simdbc ReleaseSIMDBC

# Cleanup.
echo "" >>"$TEMP"
echo "#endif  // RUNTIME_VM_COMPILER_RUNTIME_OFFSETS_EXTRACTED_H_" >>"$TEMP"
mv "$TEMP" "$FILE"
git cl format "$FILE"
echo -e "\n\nSuccessfully generated $FILE :)"
