#!/bin/bash -le

debug() {
  echo "::debug::$*"
}

error() {
  echo "::error::$*"
}

fatal() {
  error "$*"
  exit 1
}

group() {
  echo "::group::$*"
}

endgroup() {
  echo "::endgroup::"
}

group 'setup'

buildmode=$1
setup_flags=()
builddir=build-$buildmode
test_install=0

debug "Running with buildmode=$buildmode"

case $buildmode in
  plain)
    test_install=1
    ;;
  asan)
    setup_flags=('-Db_sanitize=address')
    ;;
  *)
    fatal "unknown build mode $buildmode"
    ;;
esac

pacman -Syu --noconfirm base-devel git gmock gtest python meson pcre perl

# Needed to ensure PATH is properly set for perl, etc.
source /etc/profile

endgroup

# build
group 'build'
meson setup "$builddir" \
  --prefix=/usr \
  --buildtype=debugoptimized \
  "${setup_flags[@]}"
meson compile -C "$builddir"
endgroup

# test
group 'test'
meson test -C "$builddir" --print-errorlogs -v
endgroup

# install
if (( test_install )); then
  group 'install'
  meson install -C "$builddir"
  endgroup
fi
