#!/bin/sh

if test -z "$CMAKE"; then CMAKE="`which cmake`"; fi
if test -z "$CMAKE"; then CMAKE=/Applications/CMake.app/Contents/bin/cmake; fi
if ! test -f "$CMAKE"; then echo "no ‘cmake’ command found"; exit 1; fi

: ${R_HOME:=$(R RHOME)}
if test -z "${R_HOME}"; then
  echo "could not determine R_HOME"
  exit 1
fi
RCC=`"${R_HOME}/bin/R" CMD config CC`
CC=${RCC%% *}
RCC=${RCC#$CC}
EXTRACFLAGS=$(echo "$RCC"| sed -e  "s/-std=[^ ]\{0,\}//")
RCXX=`"${R_HOME}/bin/R" CMD config CXX`
CXX=${RCXX%% *}
RCXX=${RCXX#$CXX}
EXTRACXXFLAGS=$(echo "$RCXX"| sed -e  "s/-std=[^ ]\{0,\}//")
CFLAGS=`"${R_HOME}/bin/R" CMD config CFLAGS`
CPPFLAGS=`"${R_HOME}/bin/R" CMD config CPPFLAGS`
CXXFLAGS=`"${R_HOME}/bin/R" CMD config CXXFLAGS`
R_LDFLAGS=`"${R_HOME}/bin/R" CMD config LDFLAGS`
R_SHLDFLAGS=`"${R_HOME}/bin/R" CMD config SHLIB_LDFLAGS`
FC=`"${R_HOME}/bin/R" CMD config FC`
FLIBS=`"${R_HOME}/bin/R" CMD config FLIBS`
R_SHLIB_EXT=`"${R_HOME}/bin/R" CMD config SHLIB_EXT`

CFLAGS="$CPPFLAGS $CFLAGS $EXTRACFLAGS"
CXXFLAGS="$CPPFLAGS $CXXFLAGS $EXTRACXXFLAGS"
#LDFLAGS="$R_LDFLAGS $R_SHLDFLAGS"

cd src
mkdir -p build && cd build
$CMAKE -S ../planc \
  -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE \
  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -DCMAKE_POSITION_INDEPENDENT_CODE:bool=ON \
  -DCMAKE_C_COMPILER="$CC" \
  -DCMAKE_CXX_COMPILER="$CXX" \
  -DPASSTHROUGH_CONFIGURE_ARGS="$*" \
  -DBUILD_RCPP=ON \
  -DR_SHLIB_EXT="$R_SHLIB_EXT" \
  -DR_RHOME="$R_HOME" \
  -DBUILD_SHARED_LIBS=OFF \
  -DCMAKE_INSTALL_PREFIX=$R_PACKAGE_DIR \
  -DCMAKE_OSX_DEPLOYMENT_TARGET="11" \
  ${CMAKE_ARGS}

echo "" >>  _deps/highfive-src/include/highfive/bits/H5Friends.hpp

${MAKE}
$CMAKE --install .

echo "" >>  CMakeFiles/hdf5/cmake_hdf5_test.c
