_realname=tiledb
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.9000
pkgrel=1
pkgdesc="Storage management library for sparse and dense array data (mingw-w64)"
arch=("any")
url="https://tiledb.com/"
license=("MIT")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-gcc")
options=("staticlibs" "strip")
source_dir="$TILEDB_HOME"

build() {
  [[ -d ${source_dir}/build-${MINGW_CHOST} ]] && rm -rf ${source_dir}/build-${MINGW_CHOST}
  mkdir -p ${source_dir}/build-${MINGW_CHOST} && cd ${source_dir}/build-${MINGW_CHOST}

  if [ "$CARCH" == "i686" ]; then
  export CFLAGS="-mfpmath=sse -msse2"
  export CXXFLAGS="-mfpmath=sse -msse2"
  vcpkg_triplet="x86-mingw-static-release"
  else
  vcpkg_triplet="x64-mingw-static-release"
  fi


  export MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX="
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G"MSYS Makefiles" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DBUILD_SHARED_LIBS=OFF \
    -DCMAKE_BUILD_TYPE=Release \
    -DTILEDB_STATIC=ON \
    -DTILEDB_TESTS=OFF \
    -DTILEDB_S3=ON \
    -DCOMPILER_SUPPORTS_AVX2=OFF \
    -DTILEDB_SKIP_S3AWSSDK_DIR_LENGTH_CHECK=ON \
    -DTILEDB_WERROR=OFF \
    -DVCPKG_TARGET_TRIPLET=${vcpkg_triplet} \
    ..
  make
  make -C tiledb

# in a local environ, can build to demo/check for previously seen (windows event) handle leakge
# apparently due to issues with mingw std library implementation.
# note that with S3 enabled above, and minio not running, the aws sdk may fatally error on exit.
#  make -C tiledb/test tiledb_unit # need the support lib built
#  make -C tiledb/test/performance tiledb_explore_msys_handle_leakage
#  . ../test/performance/msys_handle_leakage/trials.sh
}

package() {
  cd ${source_dir}/build-${MINGW_CHOST}
  make DESTDIR="${pkgdir}" -C tiledb install
  # Copy vcpkg_installed to the mingw package.
  cp -r vcpkg_installed/${vcpkg_triplet}/. ${pkgdir}/${MINGW_ARCH}
}

check (){
  cd ${source_dir}/build-${MINGW_CHOST}
  #make check
}
