# Maintainer: Ali Mohammad Pur <totally@fakegmail.ch>
# Contributor: Tim Schumacher <timschumi@gmx.de>
# Contributor: Alexander F. Rødseth <xyproto@archlinux.org>
# Contributor: Brian <brain@derelict.garden>

pkgname=ladybird-git
pkgver=r79218.ec3ea7ed259
pkgrel=1
pkgdesc='Truly independent web browser'
arch=(x86_64)
url='https://github.com/LadybirdBrowser/ladybird'
license=(BSD-2-Clause)
conflicts=(ladybird)
provides=(ladybird)
depends=(
	curl
	fmt
	dbus
	fast_float
	ffmpeg
	harfbuzz
	icu
	libavif
	libgl
	libjpeg-turbo
	libjxl
	libtiff
	libtommath
	libwebp
	qt6-base
	qt6-multimedia
	qt6-tools
	sdl3
	sqlite
	ttf-liberation
	woff2
	freetype2
	fontconfig
	openssl
	libpulse
	libxml2
	gcc-libs
	zlib
	brotli
	libproxy
	hicolor-icon-theme

	libpng-apng # Should be AUR apng variant
	simdjson
	angle
	opendht
	cpptrace
	mimalloc
	wuffs-lib
)
makedepends=(autoconf-archive automake cmake git nasm ninja patchelf skia-static tar unzip zip libpng-apng rust)
options=('!lto' '!staticlibs' '!emptydirs' '!debug')
source=(
	"git+$url"
)
sha256sums=('SKIP')

prepare() {
	cd ladybird
	sed -i "s|78.2|78.3|g" Libraries/LibUnicode/CMakeLists.txt || true
	sed -i "s|78.2|78.3|g" Meta/CMake/check_for_dependencies.cmake || true
	sed -i 's/mi_heap_get_default/mi_heap_main/g' AK/kmalloc.cpp || true
}

pkgver() {
	cd ladybird
	printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

build() {
	cd "${srcdir}"

	export PKG_CONFIG_PATH=$(realpath .)

	cmake \
		-B build \
		-S ladybird \
		-DENABLE_CI_BASELINE_CPU=ON \
		-DBUILD_SHARED_LIBS=OFF \
		-DLADYBIRD_CACHE_DIR=Build/caches \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX='/usr' \
		-DENABLE_INSTALL_HEADERS=OFF \
		-DENABLE_INSTALL_FREEDESKTOP_FILES=ON \
		-DCMAKE_INSTALL_LIBEXECDIR="lib/${pkgname%-git}" \
		-GNinja \
		-Wno-dev
	cmake --build build
}

package() {
	cd "${srcdir}"

	DESTDIR="${pkgdir}" cmake --install build

	find "$pkgdir" -name '*.a' -delete
	find "$pkgdir" -name '*.cmake' -delete

	# find "$pkgdir" -type f -executable -exec sh -c '
	#	 for exe; do
	#		 r=$(patchelf --print-rpath "$exe" 2>/dev/null)
	#		 [ "${r%%/opt/angle/lib*}" = "$r" ] && patchelf --set-rpath "/opt/angle/lib${r:+:$r}" "$exe"
	#	 done
	# ' sh {} +

	# Make the desktop file point to the file in /opt
	#RELATIVE_DESKTOP_FILE_PATH='usr/share/applications/org.ladybird.Ladybird.desktop'
	#sed -i -e 's#Exec=Ladybird #Exec=/opt/ladybird/usr/bin/Ladybird #' "${pkgdir}/opt/ladybird/${RELATIVE_DESKTOP_FILE_PATH}"


	install -Dm644 ladybird/LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}/"
	patchelf --set-rpath /usr/lib/angle:/usr/lib/ladybird "${pkgdir}/usr/bin/Ladybird"
	#install -vDm644 "${pkgdir}/opt/ladybird/${RELATIVE_DESKTOP_FILE_PATH}" "${pkgdir}/${RELATIVE_DESKTOP_FILE_PATH}"
	rm -f "${srcdir}/usr/COMMIT"
}
