# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Saul Ibarra Corretge <saghul@gmail.com>
# Contributor: Ray Donnelly <mingw.android@gmail.com>

_realname=p11-kit
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.24.1
pkgrel=2
pkgdesc="Library to work with PKCS#11 modules (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
url="https://p11-glue.freedesktop.org/p11-kit.html"
license=('BSD')
depends=("${MINGW_PACKAGE_PREFIX}-libtasn1"
         "${MINGW_PACKAGE_PREFIX}-libffi"
         "${MINGW_PACKAGE_PREFIX}-gettext")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-autotools"
             "${MINGW_PACKAGE_PREFIX}-gtk-doc"
             #"${MINGW_PACKAGE_PREFIX}-meson"
             #"${MINGW_PACKAGE_PREFIX}-ninja"
             )
options=('!debug' 'strip' 'staticlibs')
source=(https://github.com/p11-glue/p11-kit/releases/download/${pkgver}/${_realname}-${pkgver}.tar.xz{,.sig}
        0001-allow-gtkdocize.all.patch
        0002-fix-includes.patch
        0004-fix-abspath-check.all.patch
        pathtools.c
        pathtools.h
        0006-p11-kit-relocation.patch
        0007-mmap-CreateFile-with-FILE_SHARE_READ.patch
        0008-add-debugging-to-mmap.patch
        0009-add-debugging-to-path.patch
        0010-fix-transport-test.patch
        0011-p11-kit-spawn-external.patch
        0012-no-version-script.patch
        0013-fix-reallocarray-decl.patch
        0014-meson-build.patch)
validpgpkeys=('C0F67099B808FB063E2C81117BFB1108D92765AF'
              '462225C3B46F34879FC8496CD605848ED7E69871')
sha256sums=('d8be783efd5cd4ae534cee4132338e3f40f182c3205d23b200094ec85faaaef8'
            'SKIP'
            '195b2e8695f701caf545e2a468383ad29457febd9b1ee57de1986de04ad3c31c'
            'aa92f986d3f7dfc119e86f9a8f3987e6ac2562149921820eadbe09218c4df99c'
            'ea4593324db6d2d193733561f0352c6d679d1fb00aed0a2bae0d28aecbe92721'
            '703cd0cb74e714f9e66d26de11c109dd76fab07e723af8dde56a35ea65102e5f'
            '4f9d325265ef6f4e90ad637dea41afa6995388c921fe961ad5dc895aca10318b'
            '9b1e3ea595d2b0708cfe15a177901c6bd0ff8d32ac1739fdd6963e83cd6bdd68'
            '2b0fc5c54776aca54e306315338323075e7412d8d800f490a31870008c34f8d1'
            '652e4be637bf77f20d8fde91175286701430e720e4082e8818a50ebddff28460'
            '8c796ade0ef6356c796d2e87b967c7a9d888783c08e740e35d5686f6deb7f009'
            '6c4b94bb8aee1981c07215d2c8449614f1a604a705f05806f6f1e8299b729698'
            '3c4821c36f76fd45c0d1ec83474773e45ccefde4ac92ca88b8493425f7553cb9'
            '15a2729f39e260f7fe8d55a91a399f2512854da626a69bc215470f902fc178cd'
            '83ecf11aaf9a1c6f617790048e80febd7320edae6ba203958349264170956911'
            'c04a384a6bc7e05098ee67d76cc4aecc9004eed2366b4ce9097428309b1581b6')

prepare() {
  test ! -d "${startdir}/../mingw-w64-pathtools" || {
    cmp "${startdir}/../mingw-w64-pathtools/pathtools.c" "${srcdir}/pathtools.c" &&
    cmp "${startdir}/../mingw-w64-pathtools/pathtools.h" "${srcdir}/pathtools.h"
  } || exit 1

  cd "${srcdir}/${_realname}-${pkgver}"
  cp -fHv "${srcdir}"/pathtools.[ch] common/

  patch -p1 -i ${srcdir}/0001-allow-gtkdocize.all.patch
  patch -p1 -i ${srcdir}/0002-fix-includes.patch
  patch -p1 -i ${srcdir}/0004-fix-abspath-check.all.patch
  patch -p1 -i ${srcdir}/0006-p11-kit-relocation.patch
  patch -p1 -i ${srcdir}/0007-mmap-CreateFile-with-FILE_SHARE_READ.patch
  # patch -p1 -i ${srcdir}/0007-add-debugging-to-mmap.patch
  # patch -p1 -i ${srcdir}/0008-add-debugging-to-path.patch
  patch -p1 -i ${srcdir}/0010-fix-transport-test.patch
  patch -p1 -i ${srcdir}/0011-p11-kit-spawn-external.patch
  patch -p1 -i ${srcdir}/0012-no-version-script.patch
  patch -p1 -i ${srcdir}/0013-fix-reallocarray-decl.patch
  patch -p1 -i ${srcdir}/0014-meson-build.patch

  autoreconf -vfi
  gtkdocize
}

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

  # PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/share/pkgconfig" \
  # ${MINGW_PREFIX}/bin/meson \
    # --prefix=${MINGW_PREFIX} \
    # --buildtype debugoptimized \
    # -Dgtk_doc=true \
    # -Dsystem_config=${MINGW_PREFIX}/etc \
    # -Dman=true \
    # -Dtrust_paths=${MINGW_PREFIX}/etc/pki/ca-trust/source:${MINGW_PREFIX}/share/pki/ca-trust-source \
    # ../${_realname}-${pkgver}

  # ninja

  PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/share/pkgconfig" \
  ../${_realname}-${pkgver}/configure \
    --prefix=${MINGW_PREFIX} \
    --build=${MINGW_CHOST} \
    --host=${MINGW_CHOST} \
    --target=${MINGW_CHOST} \
    --sysconfdir=${MINGW_PREFIX}/etc \
    --localstatedir=${MINGW_PREFIX}/var \
    --with-trust-paths="${MINGW_PREFIX}/etc/pki/ca-trust/source:${MINGW_PREFIX}/share/pki/ca-trust-source" \
    --disable-silent-rules \
    "${extra_config[@]}"

  MSYS2_ARG_CONV_EXCL="-DBINDIR=;-DDATA_DIR=;-DP11_SYSTEM_CONFIG_FILE=;-DP11_SYSTEM_CONFIG_MODULES=;-DP11_PACKAGE_CONFIG_MODULES=;-DP11_MODULE_PATH=;-DDATADIR=;-DSYSCONFDIR=;-DPRIVATEDIR=;-DP11_USER_CONFIG_FILE=;-DP11_USER_CONFIG_MODULES=" \
    make
}

package() {
  cd "${srcdir}/build-${MINGW_CHOST}"
  MSYS2_ARG_CONV_EXCL="-DBINDIR=;-DDATA_DIR=;-DP11_SYSTEM_CONFIG_FILE=;-DP11_SYSTEM_CONFIG_MODULES=;-DP11_PACKAGE_CONFIG_MODULES=;-DP11_MODULE_PATH=;-DDATADIR=;-DSYSCONFDIR=;-DPRIVATEDIR=;-DP11_USER_CONFIG_FILE=;-DP11_USER_CONFIG_MODULES=" \
    make DESTDIR="${pkgdir}" install
}
