#!/usr/bin/make -f

# try building with python3
export CALIBRE_PY3_PORT=1
SETUP=python3 setup.py

# build options
export DEB_BUILD_MAINT_OPTIONS=hardening=+all reproducible=+all

# Disable HTTP response test because of timeout limit is too much tight (1 sec)
# > AssertionError: Large file transfer took too long
TEST_FLAGS = --exclude-test-name=test_http_response

# Disable some tests for specific platforms
ifeq      (arm64,  $(DEB_HOST_ARCH))
  TEST_FLAGS += --exclude-test-name=test_qt
else ifeq (mipsel, $(DEB_HOST_ARCH))
  TEST_FLAGS += --exclude-test-name=test_bonjour
endif

# Set our HOME directory for testing.
# Some test uses it for XDG Base Directory.
TEST_HOME = $(CURDIR)/debian/test-home

%:
	dh $@ --buildsystem=makefile

DEB_DH_GENCONTROL_ARGS = -- -Vpyqt:Version=$(shell dpkg-query -f'$${Version}' -W python3-pyqt5)

export QT_SELECT=qt5

override_dh_auto_configure:
	# use system mathjax
	$(SETUP) mathjax --system-mathjax --path-to-mathjax=/usr/share/javascript/mathjax

override_dh_auto_build:
	[ -d build ] || $(SETUP) build

override_dh_auto_test:
	mkdir -p $(TEST_HOME)
	HOME=$(TEST_HOME) LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C TZ=UTC xvfb-run $(SETUP) test $(TEST_FLAGS)

override_dh_install:
	dh_buildinfo
	dh_sip3 -pcalibre-bin
	dh_install

override_dh_missing:
	dh_missing --fail-missing

override_dh_auto_install:
	mkdir -p  debian/tmp/usr/share/icons/hicolor
	mkdir -p  debian/tmp/usr/share/applications
	mkdir -p  debian/tmp/usr/share/mime/packages
	mkdir -p  debian/tmp/usr/share/zsh/vendor-completions
	env LANGUAGE= LC_ALL=C LC_CTYPE=C LC_MESSAGES=C LANG=C XDG_DATA_DIRS=$(CURDIR)/debian/tmp/usr/share CALIBRE_CONFIG_DIRECTORY=debian/tmp/config $(SETUP) install --root=debian/tmp/usr

	# not needed
	rm debian/tmp/usr/share/calibre/calibre-portable.*
	rm debian/tmp/usr/lib/python*/site-packages/init_calibre.py

	# do not ship a copy of fonts-liberation
	rm -r debian/tmp/usr/share/calibre/fonts/liberation/
	ln -s /usr/share/fonts/truetype/liberation/ debian/tmp/usr/share/calibre/fonts/liberation

	# fix executable permissions
	find debian/tmp/usr/lib/calibre/calibre -type f -executable | xargs --no-run-if-empty chmod a-x

	# fix "env python3" style hashbangs
	find debian/tmp -type f | xargs sed -i '1 { /^#!.*python/ s_^.*$$_#!/usr/bin/python3_ }'

override_dh_installman:
	# Create and install some of the man pages
	ln -sf $(CURDIR)/man-pages debian/man
	dh_installman

override_dh_auto_clean:
	rm -rf debian/orig
	rm -rf $(TEST_HOME)
	rm -f  debian/man
	[ ! -d build ] || $(SETUP) build -c
	$(SETUP) mathjax --clean
	find . -name '*.pyc' -delete
	find . -name '*.so'  -delete
	find . -name '*.qrc' -delete

override_dh_gencontrol:
	dh_gencontrol $(DEB_DH_GENCONTROL_ARGS)

.PHONY: get-orig-source
get-orig-source:
	uscan --verbose
