# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=wpewebkit
pkgver=2.46.6
pkgrel=0
pkgdesc="WebKit port optimized for embedded devices"
url="https://wpewebkit.org/"
#arch="all !riscv64"
arch=""
license="other"
_llvmver=19
makedepends="
	at-spi2-core-dev
	bubblewrap
	cairo-dev
	clang$_llvmver
	cmake
	gi-docgen
	gobject-introspection-dev
	gperf
	gst-plugins-bad-dev
	gst-plugins-base-dev
	gtk-doc
	harfbuzz-dev
	lcms2-dev
	libavif-dev
	libepoxy-dev
	libgcrypt-dev
	libseccomp-dev
	libsoup3-dev
	libtasn1-dev
	libwpe-dev
	libwpebackend-fdo-dev
	libxkbcommon-dev
	libxslt-dev
	llvm$_llvmver
	ninja
	openjpeg-dev
	perl
	ruby-dev
	unifdef
	wayland-dev
	wayland-protocols
	woff2-dev
	xdg-dbus-proxy
	"
subpackages="$pkgname-dev $pkgname-doc"
source="https://wpewebkit.org/releases/wpewebkit-$pkgver.tar.xz
	armv6kz.patch
	gettext.patch
	loongarch64-fix-simde.patch
	skia-add-target_sources-for-loongarch64.patch
	"
options="!check"

case "$CARCH" in
s390x)
	_use_jpegxl=OFF # unavailable
	;;
*)
	_use_jpegxl=ON
	makedepends="$makedepends libjxl-dev"
	;;
esac

case "$CARCH" in
s390x|riscv64)
	;;
*)
	makedepends="$makedepends lld"
	;;
esac

build() {
	case "$CARCH" in
	s390x|armhf|armv7|x86|ppc64le|loongarch64)
		# llint/LowLevelInterpreter.cpp fails to build with fortify source here
		export CXXFLAGS="$CXXFLAGS -U_FORTIFY_SOURCE"
		;;
	esac

	case "$CARCH" in
	armv7)
		# clang fails to build armv7 due to some NEON related thing.
		# https://github.com/WebKit/WebKit/pull/1233 should fix it
		;;
	s390x|riscv64)
		# no lld on s390x, broken on riscv64
		export CC=clang-$_llvmver
		export CXX=clang++-$_llvmver
		;;
	*)
		# much lower build memory usage and better final size
		export CC=clang-$_llvmver
		export CXX=clang++-$_llvmver
		export LDFLAGS="$LDFLAGS -fuse-ld=lld"
		;;
	esac
	if [ "$CBUILD" != "$CHOST" ]; then
		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi

	export AR=llvm$_llvmver-ar
	export NM=llvm$_llvmver-nm
	export RANLIB=llvm$_llvmver-ranlib

	cmake -B build \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_SHARED_LIBS=True \
		-DCMAKE_BUILD_TYPE=Release \
		-DPORT=WPE \
		-DENABLE_MINIBROWSER=On \
		-DENABLE_JOURNALD_LOG=Off \
		-DUSE_LIBBACKTRACE=False \
		-DUSE_SYSTEM_SYSPROF_CAPTURE=NO \
		-DUSE_JPEGXL=$_use_jpegxl \
		-GNinja \
		$CMAKE_CROSSOPTS .
	cmake --build build
}

package() {
	DESTDIR="$pkgdir" cmake --install build
}

sha512sums="
459921bc383dd4618bc206ecf007b6d48b4e099037685b68cf2734d58456ab2faa5b9030c1a246d0006ebaf33842cbb1d8c286d7d96ba0cc9a3b7c79daafad5d  wpewebkit-2.46.6.tar.xz
8c89d4ac737a2bd6d970fec3ecb9d0b72d61ffb9a37d4b0b56bc0106914398a65319e940c593c0305fc40d6900aac2a8b4fc3bafc9a96062063d15abd1f5039d  armv6kz.patch
f84c737a3d31453ba266f45c7b43803bbeb5d8b62e6e23005e1775d4ae2d7215614d1233c25b9953387027cea8e1f10a3dd904417333750c763cd61c9c7bc379  gettext.patch
3dfb8db878a02df6e2f33a477adacabd1a6bd093eb0bf0434b9f7d48a4d6eae289a52b593975a6c4f2a2b94e31b420606b72f787a2b1729cb77835a98a1257d8  loongarch64-fix-simde.patch
1f53c218fa4a4b6512344c21cd6d54d053fbd28bce9c543e30101f7ca54d6da0ef28a1f0ba54210088c6a2d0eddf26509a782862089694c25efbaf582cefe10a  skia-add-target_sources-for-loongarch64.patch
"
