# Contributor: Tom Gundersen <teg@jklm.no>
# Contributor: Judd <jvinet@zeroflux.org>

pkgbase=libevent
pkgname=(libevent libevent-docs)
pkgver=2.1.12
pkgrel=4.1
pkgdesc="Event notification library"
url="https://libevent.org/"
license=(BSD)
ncxfat_makedepends=(binutils openssl zlib gcc)
ncxfab_makedepends=(base-devel cmake ninja python doxygen)
options=(debug)
source=(
  https://github.com/libevent/libevent/releases/download/release-$pkgver-stable/libevent-$pkgver-stable.tar.gz{,.asc}
  EVENT__SIZEOF_TIME_T.patch
  libevent-2.1.12-openssl-compat.patch
  aarch64.cmake
)
sha256sums=('92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb'
            'SKIP'
            '945fc885b15692721bc7ae52f5774ef4fab8cc0f6108baa8860ab368de8675cf'
            'e41527c55f6dacc6453b13eeeea2664798496896b796abcd2a5c8304c9eb2bae'
            '156a7eb05cd8f1c5fce8af5d278df998ece3eee5eebf18827276c6bc17057fbc')
validpgpkeys=('B35BF85BF19489D04E28C33C21194EBB165733EA'
              '9E3AC83A27974B84D1B3401DB86086848EF8686D')

prepare() {
  cd libevent-$pkgver-stable

  # Fix Firefox build
  patch -Np1 -i ../EVENT__SIZEOF_TIME_T.patch

  # Fix build with OpenSSL 3.0
  patch -Np1 -i ../libevent-2.1.12-openssl-compat.patch
}

build() {
  if (( MPKG_CROSSCOMPILED )); then
      CROSS_OPT="-DCMAKE_TOOLCHAIN_FILE=$(realpath $MPKG_TARGETARCH.cmake)"
  fi
    
  cmake -S libevent-$pkgver-stable -B build -G Ninja \
    -DCMAKE_BUILD_TYPE=None \
    $CROSS_OPT \
    -DCMAKE_INSTALL_PREFIX=$MPKG_USRPATH \
    -DCMAKE_SKIP_INSTALL_RPATH=TRUE \
    -DEVENT__LIBRARY_TYPE=SHARED \
    -DEVENT__DISABLE_REGRESS=OFF \
    -DEVENT__DOXYGEN=ON
  cmake --build build
}

check() {
  cd build
  ctest --output-on-failure --stop-on-failure -j$(nproc)
}

package_libevent() {
  ncxfat_depends=(openssl)
  provides=(libevent{,_core,_extra,_openssl,_pthreads}-2.1.so)
  ncxfah_optdepends=('python: event_rpcgen.py')

  DESTDIR="$pkgdir" cmake --install build

  mkdir -p doc$MPKG_USRPATH/share
  mv {"$pkgdir",doc}$MPKG_USRPATH/share/doc

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 libevent-$pkgver-stable/LICENSE
}

package_libevent-docs() {
  pkgdesc+=" (documentation)"
  ncxfah_depends=()

  mv doc/* "$pkgdir"
}
