#!/bin/bash
# SPDX-License-Identifier: MIT
# Copyright (c) 2020 Nicholas Guriev <guriev-ns@ya.ru>
set -e -u

what=$(basename "$0")
IFS='-' read -r _ compiller cppstd <<< "${what}"
if [[ "${compiller}" =~ gcc* ]]; then
  compiller="g++-${compiller#gcc}"
  flags=
elif [[ "${compiller}" =~ clang* ]]; then
  compiller="clang++-${compiller#clang}"
  flags="-stdlib=libc++"
else
  echo "Call this entry via symlink nearby" >&2
  exit 1
fi
cppstd="${cppstd#std}"
parallel="$(nproc)"
gtest_dir="${AUTOPKGTEST_TMP}/googletest"
msgsl_dir="${AUTOPKGTEST_TMP}/ms-gsl"

set -x
cmake -B "${gtest_dir}" \
  -DCMAKE_VERBOSE_MAKEFILE=ON \
  -DCMAKE_C_COMPILER=true \
  -DCMAKE_CXX_COMPILER="${compiller}" \
  -DCMAKE_CXX_FLAGS="${flags}" \
  -DBUILD_GMOCK=OFF \
  /usr/src/googletest
make -C "${gtest_dir}"
cmake -B "${msgsl_dir}" \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_VERBOSE_MAKEFILE=ON \
  -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON \
  -DCMAKE_CXX_COMPILER="${compiller}" \
  -DCMAKE_CXX_FLAGS="${flags}" \
  -DCMAKE_EXE_LINKER_FLAGS="-L${gtest_dir}/lib" \
  -DGSL_CXX_STANDARD="${cppstd}"
make -C "${msgsl_dir}" "-j${parallel:-1}"
make -C "${msgsl_dir}" test "ARGS+=-j${parallel:-1}"
