# Description: Email client from the Mozilla project
# URL: https://www.thunderbird.net/en-US/
# Maintainer: Danny Rawlins, crux at romster dot me
# Depends on: alsa-lib autoconf-2.13 cbindgen clang dbus-glib gnupg gtk libwebp libevent libidl libnotify libvpx lld nodejs nss startup-notification unzip zip wasi-libc++
# Optional: sccache

name=thunderbird
version=102.2.2
release=1
source=(https://archive.mozilla.org/pub/thunderbird/releases/$version/source/$name-$version.source.tar.xz
	$name.desktop
	cbindgen-0.24.patch
	rustc_version-0.4.0.patch
	packed_simd_2-0.3.8.patch)
 
build() {
	cd $name-$version

	patch -p1 -i $SRC/cbindgen-0.24.patch
	patch -p1 -i $SRC/rustc_version-0.4.0.patch
	patch -p1 -i $SRC/packed_simd_2-0.3.8.patch

	if [ -e '/usr/bin/ccache' ]; then
		export OS_CCACHE_COMPILERCHECK="$(/usr/bin/clang -dumpversion | sed -z 's/\n/ /g'; crux | cut -d' ' -f3)"
		export CCACHE_COMPILERCHECK="string:$OS_CCACHE_COMPILERCHECK"
		PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
	fi

	prt-get isinst sccache && export RUSTC_WRAPPER=/usr/bin/sccache
	mkdir "$PKGMK_SOURCE_DIR/rust" || true
	export CARGO_HOME="$PKGMK_SOURCE_DIR/rust"

cat <<- EOF > .mozconfig
	ac_add_options --prefix=/usr
	ac_add_options --enable-application=comm/mail
	ac_add_options --with-system-jpeg
	ac_add_options --with-system-zlib
	ac_add_options --with-system-png
	ac_add_options --with-system-nspr
	ac_add_options --with-system-nss
	ac_add_options --with-system-libevent
	ac_add_options --with-system-libvpx
	ac_add_options --with-system-webp
	ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot
	ac_add_options --enable-av1
	ac_add_options --enable-system-ffi
	ac_add_options --enable-system-pixman
	ac_add_options --enable-optimize
	ac_add_options --enable-linker=lld
	ac_add_options --enable-lto=thin
	ac_add_options --enable-release
	ac_add_options --enable-rust-simd
	ac_add_options --enable-official-branding
	ac_add_options --with-distribution-id=nu.crux
	ac_add_options --disable-debug
	ac_add_options --disable-debug-symbols
	ac_add_options --disable-tests
	ac_add_options --disable-updater
	ac_add_options --disable-crashreporter
	ac_add_options --disable-necko-wifi
	ac_add_options --disable-pulseaudio
	ac_add_options --disable-elf-hack
EOF

	# audio
	prt-get isinst alsa-lib && echo 'ac_add_options --enable-alsa' >> .mozconfig || echo 'ac_add_options --disable-alsa' >> .mozconfig
	prt-get isinst jack && echo 'ac_add_options --enable-jack' >> .mozconfig || echo 'ac_add_options --disable-jack' >> .mozconfig
	prt-get isinst pulseaudio && echo 'ac_add_options --enable-pulseaudio' >> .mozconfig || echo 'ac_add_options --disable-pulseaudio' >> .mozconfig

	prt-get isinst wayland-protocols && \
		echo 'ac_add_options --enable-default-toolkit=cairo-gtk3-wayland' >> .mozconfig || \
		echo 'ac_add_options --enable-default-toolkit=cairo-gtk3' >> .mozconfig

	[[ -e '/usr/bin/ccache' ]] && echo 'ac_add_options --enable-ccache' >> .mozconfig

	export PYTHON=/usr/bin/python3
	export RUSTFLAGS="$RUSTFLAGS -C debuginfo=0"
	export CC=clang CXX=clang++ AR=llvm-ar NM=llvm-nm RANLIB=llvm-ranlib
	export MOZ_MAKE_FLAGS="-j ${JOBS-1}"
	export MOZBUILD_STATE_PATH="$PKGMK_SOURCE_DIR/.mozbuild"

	# Disable notification when build system has finished
	export MOZ_NOSPAM=1

	# Use system's Python environment
	export MACH_USE_SYSTEM_PYTHON=1

	# Show flags set at the beginning
	echo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
	echo "Current CFLAGS:\t\t${CFLAGS:-no value set}"
	echo "Current CXXFLAGS:\t\t${CXXFLAGS:-no value set}"
	echo "Current LDFLAGS:\t\t${LDFLAGS:-no value set}"
	echo "Current RUSTFLAGS:\t\t${RUSTFLAGS:-no value set}"

	# python/mach/mach/mixin/process.py fails to detect SHELL
	export SHELL='/usr/bin/bash'

	./mach build
	DESTDIR=$PKG ./mach install

	install -d $PKG/usr/share/pixmaps
	ln -s /usr/lib/thunderbird/chrome/icons/default/default48.png $PKG/usr/share/pixmaps/thunderbird_default48.png
	install -D -m 0644 $SRC/$name.desktop $PKG/usr/share/applications/$name.desktop

	find $PKG -iname '*README*' -delete
	#rm -r $PKG/usr/{include,lib/thunderbird-devel,share/idl}

	install -d $PKG/etc/revdep.d
	echo "/usr/lib/thunderbird" > $PKG/etc/revdep.d/$name
}