# Maintainer: Lucio Perusini <lucioperusini@gmail.com>
# Contributor: R4SAS <r4sas@i2pmail.org>

_realname=i2pd
pkgbase=mingw-w64-${_realname}
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
pkgver=2.55.0
pkgrel=1
pkgdesc='A full-featured C++ implementation of the I2P router (mingw-w64)'
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://i2pd.website/'
msys2_repository_url="https://github.com/PurpleI2P/i2pd"
msys2_references=(
  'archlinux: i2pd'
  "cpe: cpe:2.3:a:i2pd:i2pd"
)
license=('spdx:BSD-3-Clause')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
         "${MINGW_PACKAGE_PREFIX}-boost-libs"
         "${MINGW_PACKAGE_PREFIX}-libwinpthread-git"
         "${MINGW_PACKAGE_PREFIX}-miniupnpc"
         "${MINGW_PACKAGE_PREFIX}-openssl"
         "${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-boost")
source=("https://github.com/PurpleI2P/i2pd/archive/${pkgver}/${_realname}-${pkgver}.tar.gz")
sha256sums=('f5792a1c0499143c716663e90bfb105aaa7ec47d1c4550b5f90ebfc25da00c6c')
noextract=("${_realname}-${pkgver}.tar.gz") # symlinks

prepare() {
  echo "Extracting ${_realname}-${pkgver}.tar.gz ..."
  tar -xf "${_realname}-${pkgver}.tar.gz" || true
  cd ${_realname}-${pkgver}
}

build() {
  mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"

  declare -a _extra_config
  if check_option "debug" "n"; then
    _extra_config+=("-DCMAKE_BUILD_TYPE=Release")
  else
    _extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
  fi

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G "Ninja" \
    "${_extra_config[@]}" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DWITH_UPNP=ON \
    ../${_realname}-${pkgver}/build

  ${MINGW_PREFIX}/bin/cmake.exe --build ./
}

package() {
  cd "${srcdir}"/build-${MSYSTEM}

  #${MINGW_PREFIX}/bin/cmake.exe --install .

  # bin
  install -d "${pkgdir}${MINGW_PREFIX}/bin/"
  cp i2pd.exe "${pkgdir}${MINGW_PREFIX}/bin/"

  # config
  install -d "${pkgdir}${MINGW_PREFIX}/etc/i2pd"
  cp ../${_realname}-${pkgver}/contrib/{i2pd,tunnels}.conf "${pkgdir}${MINGW_PREFIX}/etc/i2pd"
  install -d "${pkgdir}${MINGW_PREFIX}/etc/i2pd/tunnels.d"
  cp ../${_realname}-${pkgver}/contrib/tunnels.d/{*.conf,README} "${pkgdir}${MINGW_PREFIX}/etc/i2pd/tunnels.d"

  # certificates
  install -d "${pkgdir}${MINGW_PREFIX}/share/i2pd"
  cp -r ../${_realname}-${pkgver}/contrib/certificates "${pkgdir}${MINGW_PREFIX}/share/i2pd"

  # license
  install -Dm644 ../${_realname}-${pkgver}/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}"
}
