# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Jonahtan Schaeffer <joschaeffer@gmail.com>
# COntributor: Drake Arconis <lightdrake@gmail.com>

pkgbase=jsoncpp
pkgname=('jsoncpp' 'jsoncpp-doc')
pkgver=1.9.5
pkgrel=2.1
pkgdesc='C++ library for interacting with JSON'
url='https://github.com/open-source-parsers/jsoncpp'
license=('MIT' 'custom:Public_Domain')
ncxfat_makedepends=('gcc' 'binutils' 'gcc-libs' 'glibc')
ncxfab_makedepends=('doxygen' 'graphviz' 'python' 'meson' 'ninja')
options=('staticlibs')
source=(https://github.com/open-source-parsers/jsoncpp/archive/${pkgver}/jsoncpp-${pkgver}.tar.gz
        aarch64-cross-file.txt)
sha512sums=('1d06e044759b1e1a4cc4960189dd7e001a0a4389d7239a6d59295af995a553518e4e0337b4b4b817e70da5d9731a4c98655af90791b6287870b5ff8d73ad8873'
            'SKIP')
b2sums=('744275297647be8f1ac7bbf6c818e5106fc122591b3fb68c37cf33f5b3b7d6666e8429bb7ca2ae693202a5a83c274303804e21ebb27f05ba235568bf75a9b375'
        'SKIP')

prepare() {
  cd jsoncpp-${pkgver}
  echo "${pkgver}" > version
}

build() {
  cd jsoncpp-${pkgver}

  if (( MPKG_CROSSCOMPILED )); then
    CROSS_FILE="--cross-file $(realpath ../$MPKG_TARGETARCH-cross-file.txt)"
  fi
  
  local _arch_meson_replacement=(
    --prefix        $MPKG_USRPATH
    --libexecdir    lib
    --sbindir       bin
    --buildtype     plain
    --auto-features enabled
    --wrap-mode     nodownload
    -D              b_pie=true
    -D              python.bytecompile=1
  )
    
  echo "Building shared library..."
  meson setup "${_arch_meson_replacement[@]}" --default-library shared build $CROSS_FILE
  ninja -C build

  echo "Building static library..."
  CXXFLAGS="$CXXFLAGS -ffat-lto-objects" \
  meson setup "${_arch_meson_replacement[@]}" --default-library static build-static $CROSS_FILE
  ninja -C build-static

  echo "Building docs..."
  python doxybuild.py \
    --doxygen="$(command -v doxygen)" \
    --with-dot
}

check() {
  cd jsoncpp-${pkgver}
  ninja -C build test
  cd test
  python runjsontests.py ../build/jsontestrunner
  python rununittests.py ../build/jsoncpp_test
}

package_jsoncpp() {
  ncxfat_depends=('gcc-libs')
  ncxfat_optdepends=('jsoncpp-doc: documentation')
  provides=('libjsoncpp.so')

  cd jsoncpp-${pkgver}
  DESTDIR="${pkgdir}" ninja -C build install
  DESTDIR="${pkgdir}" ninja -C build-static install
  install -Dm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
  install -Dm 644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}"
}

package_jsoncpp-doc() {
  pkgdesc+=' (documentation)'
  ncxfat_optdepends=('jsoncpp')

  cd jsoncpp-${pkgver}
  install -Dm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
  install -dm 755 "${pkgdir}/usr/share/doc/${pkgbase}"
  cp -a dist/doxygen/jsoncpp-api-html-${pkgver} "${pkgdir}/usr/share/doc/${pkgbase}/html"
}

# vim: ts=2 sw=2 et:
