# Maintainer: yumetodo <yume-wikijp@live.jp>

_realname=skyr-url
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=1.13.0
pkgrel=4
pkgdesc="A C++ library that implements the WhatWG URL specification (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://github.com/cpp-netlib/url'
license=('spdx:BSL-1.0')
depends=("${MINGW_PACKAGE_PREFIX}-tl-expected")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-catch"
             "${MINGW_PACKAGE_PREFIX}-fmt"
             "${MINGW_PACKAGE_PREFIX}-nlohmann-json"
             "${MINGW_PACKAGE_PREFIX}-range-v3")
source=("https://github.com/cpp-netlib/url/archive/v${pkgver}/url-v${pkgver}.tar.gz")
sha256sums=('0c9e594f09a9abda5815b07b548ac520b2fc1044fc74b589fc4c5bd18ea4330c')

prepare() {
  cd "url-${pkgver}"
  # patch catch.hpp path to catch2/catch.hpp
  find -type f -exec sed -i 's/<catch.hpp>/<catch2\/catch.hpp>/g' {} \;
}

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

  if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
    _extra_config+=("-Dskyr_ENABLE_FILESYSTEM_FUNCTIONS=OFF")
  fi

  # Tests takes too much time
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G "Ninja" \
    "${_extra_config[@]}" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -Dskyr_FULL_WARNINGS=OFF \
    -Dskyr_WARNINGS_AS_ERRORS=OFF \
    -Dskyr_BUILD_TESTS=OFF \
    -S url-${pkgver} \
    -B build-${MSYSTEM}

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

package() {
  DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake.exe --install build-${MSYSTEM}

  install -Dm644 "${srcdir}"/url-${pkgver}/LICENSE_1_0.txt \
    "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE_1_0.txt
}
