#!/bin/sh

set -eEux

build() {
  SRC_DIR=$1
  GIT_TAG=$2
  TARGET=$3
  EXTENSION=$4

  FOLDER_NAME=$(basename $SRC_DIR)

  pushd /root/current
  # pushd /root/current/$FOLDER_NAME
  git checkout $GIT_TAG
  # if [ "$DO_CLEAN" = "1" ]; then
  #   cargo clean
  # fi

  if [ "$EXTENSION" == "dll" ]; then
    cargo build --release --features ffi --target $TARGET --target-dir target_2_17
  else
    cargo build --release --features ffi --target $TARGET --target-dir target_2_17
    cargo test --release --features ffi --target $TARGET --target-dir target_2_17
  fi
  ~/.cargo/bin/cbindgen . -c cbindgen.toml | grep -v \#include | uniq >target_2_17/$FOLDER_NAME.h

  DEST_DIR=/root/release_dir/rust/$FOLDER_NAME/$GIT_TAG/${TARGET}_glibc_2.17
  rm -rf $DEST_DIR
  mkdir -p $DEST_DIR
  cp target_2_17/$TARGET/release/*$FOLDER_NAME*$EXTENSION $DEST_DIR/
  cp target_2_17/$FOLDER_NAME.h $DEST_DIR/
  popd
}

build $1 $2 $3 $4
