#!/usr/bin/make -f
# -*- makefile -*-

export DPKG_GENSYMBOLS_CHECK_LEVEL=4

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

testskip_architectures :=

%:
	dh $@

apparmor:
	aa-easyprof -m ./debian/morph-browser-apparmor.manifest --no-verify | \
	egrep -v '(# Click packages|CLICK_DIR)' | \
	sed 's/@{APP_PKGNAME}_@{APP_APPNAME}_@{APP_VERSION}/@{APP_PKGNAME}/g' | \
	sed 's#/run/shm/\.org\.chromium\.Chromium\.\*#/{dev,run}/shm/.org.chromium.Chromium.*#g' | \
	egrep -v 'deny /run/udev/data/\*\* r,' | \
	sed 's#^}$$#\n  /sys/class/ r,\n  /sys/class/input/ r,\n  /run/udev/data/** r,\n}#g' | \
	egrep -v '^\s*deny /dev/ r,\s*$$' | \
	sed 's#^\(\s*\)deny\(\s\+/{run,dev}/shm/pulse-shm\*\s\+w,\).*$$#\1owner\2#g' | \
	sed 's#^}$$#\n  /dev/dri/ r,\n  /sys/devices/pci[0-9]*/**/config r,\n}#g' | \
	sed 's#^}$$#\n  @{HOME}/@{XDG_DOWNLOAD_DIR}/** rwk,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/bash ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/mkdir ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/lib/cargo/bin/coreutils/mkdir ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/cat ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/lib/cargo/bin/coreutils/cat ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/mv ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/gnumv ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/python3** ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/unsquashfs ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/rm ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/gnurm ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/ar ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/tar ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/bin/dirname ix,\n}#g' | \
	sed 's#^}$$#\n  /usr/lib/cargo/bin/coreutils/dirname ix,\n}#g' \
	> ./debian/usr.bin.morph-browser
ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
	apparmor_parser -QTK ./debian/usr.bin.morph-browser
endif

override_dh_auto_configure:
	dh_auto_configure --builddirectory=build-qt6 -- -DENABLE_QT6=ON -DENABLE_WERROR=OFF
	dh_auto_configure --builddirectory=build-qt5 -- -DENABLE_WERROR=OFF

override_dh_auto_build:
	dh_auto_build --builddirectory=build-qt6
	dh_auto_build --builddirectory=build-qt5

override_dh_auto_install:
	dh_auto_install --builddirectory=build-qt6 --destdir=debian/tmp-qt6
	dh_auto_install --builddirectory=build-qt5 --destdir=debian/tmp-qt5

override_dh_install: # apparmor
	mv debian/tmp-qt5/usr/share/doc/morph-web debian/tmp-qt5/usr/share/doc/qml-module-morph-web
	rmdir debian/tmp-qt5/usr/share/doc/qml-module-morph-web/html/images
#	install -D -m644 ./debian/usr.bin.morph-browser ./debian/tmp-qt5/etc/apparmor.d/usr.bin.morph-browser
#	install -D -m644 ./debian/usr.bin.morph-browser ./debian/tmp-qt6/etc/apparmor.d/usr.bin.morph-browser
	dh_install -Nmorph-browser-qt6 -Nmorph-webapp-container-qt6 -Nqml6-module-morph-web --sourcedir=debian/tmp-qt5
	dh_install -pmorph-browser-qt6 -pmorph-webapp-container-qt6 -pqml6-module-morph-web --sourcedir=debian/tmp-qt6

execute_after_dh_installdeb:
#	dh_apparmor --profile-name=usr.bin.morph-browser -pmorph-browser
#	dh_apparmor --profile-name=usr.bin.morph-browser -pmorph-browser-qt6

override_dh_auto_clean:
	dh_auto_clean --builddirectory=build-qt6
	dh_auto_clean --builddirectory=build-qt5

override_dh_auto_test:
ifneq (,$(filter $(DEB_HOST_ARCH),$(testskip_architectures)))
	dh_auto_test --no-parallel --builddirectory=build-qt6 -- ARGS+=-VV
	dh_auto_test --no-parallel --builddirectory=build-qt5 -- ARGS+=-VV
else
	# FIXME: Temporarily ignore unit test failures on testskip_architectures
	-dh_auto_test --no-parallel --builddirectory=build-qt5 -- ARGS+=-VV
	-dh_auto_test --no-parallel --builddirectory=build-qt5 -- ARGS+=-VV
endif

get-orig-source:
	uscan --noconf --force-download --rename --download-current-version --destdir=..
