# Description: Small, efficient and fast rendering engine for Web Browsers
# URL: https://www.webkitgtk.org/
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: gst-plugins-base gtk4 hyphen icu libsecret libsoup3 libwebp ruby unifdef woff2 xorg-libxcomposite
# Optional: bubblewrap enchant geoclue lcms2 libavif libjxl libmanette libnotify xdg-dbus-proxy

name=webkitgtk
version=2.52.4
release=1
source=(https://webkitgtk.org/releases/webkitgtk-$version.tar.xz)

build() {
  # fail the build if dependencies are not met
  ls /usr/include/harfbuzz/hb-icu.h || (printf '\e[1;31m%-6s\e[m\n' "You need to install icu, then rebuild harfbuzz for webkitgtk to work, quitting..." ; exit 1)

  # Make sure we do not have ccache masquerade directory in PATH.
  #[ -e '/usr/bin/ccache' ] && PATH="$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')"

  prt-get isinst bubblewrap xdg-dbus-proxy && PKGMK_WEBKITGTK+=' -DENABLE_BUBBLEWRAP_SANDBOX=ON' \
  || PKGMK_WEBKITGTK+=' -DENABLE_BUBBLEWRAP_SANDBOX=OFF'
  prt-get isinst enchant || PKGMK_WEBKITGTK+=' -DENABLE_SPELLCHECK=OFF'
  prt-get isinst geoclue && PKGMK_WEBKITGTK+=' -DENABLE_GEOLOCATION=ON' || PKGMK_WEBKITGTK+=' -DENABLE_GEOLOCATION=OFF'
  prt-get isinst lcms2 || PKGMK_WEBKITGTK+=' -D USE_LCMS=OFF'
  prt-get isinst libavif || PKGMK_WEBKITGTK+=' -DUSE_AVIF=OFF'
  prt-get isinst libjxl || PKGMK_WEBKITGTK+=' -DUSE_JPEGXL=OFF'
  prt-get isinst libmanette || PKGMK_WEBKITGTK+=' -DENABLE_GAMEPAD=OFF'

  cmake -S webkitgtk-$version -B build -G Ninja ${PKGMK_WEBKITGTK} \
    -D CMAKE_INSTALL_PREFIX=/usr \
    -D CMAKE_INSTALL_LIBDIR=/usr/lib \
    -D CMAKE_INSTALL_LIBEXECDIR=/usr/lib \
    -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS} -DNDEBUG -ffat-lto-objects -fcf-protection=none" \
    -D CMAKE_C_FLAGS_RELEASE="${CFLAGS} -DNDEBUG -ffat-lto-objects -fcf-protection=none" \
    -D CMAKE_SKIP_RPATH=ON \
    -D PORT=GTK \
    -D ENABLE_MINIBROWSER=ON \
    -D ENABLE_JOURNALD_LOG=OFF \
    -D ENABLE_DOCUMENTATION=OFF \
    -D USE_LIBBACKTRACE=OFF \
    -D USE_SYSTEM_SYSPROF_CAPTURE=NO \
    -D ENABLE_SPEECH_SYNTHESIS=NO \
    -Wno-dev

  cmake --build build -j $(($(nproc) / 2))
  DESTDIR=$PKG cmake --install build

  rm -r $PKG/usr/share/locale
}
