#!/usr/bin/make -f

# Set to 1 to enable verbose mode.
# Debhelper will output every command it runs that modifies files on the build system.
#export DH_VERBOSE=1

DPKG_ARCH := $(shell dpkg --print-architecture)

CMAKE_COMMON_OPTIONS := -DCMAKE_SKIP_RPATH=true \
			-DLIB_SUFFIX=/$(DEB_HOST_MULTIARCH) \
			-DUSE_XVFB=true \
			-DCTEST_TESTING_TIMEOUT=600

%:
	dh $@ --with python2 --with python3 --buildsystem=cmake --parallel

#### CONFIGURE ####
override_dh_auto_configure:
	# RELEASE
	for PYX in $(shell pyversions -rv) ; do \
	    mkdir -p build-$${PYX}; \
	    dh_auto_configure -a --builddirectory=build-$${PYX} -- \
	                      $(CMAKE_COMMON_OPTIONS) \
	                      -DCMAKE_BUILD_TYPE:STRING="Release" \
	                      -DPYTHON_LIBRARY=/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$${PYX}.so \
	                      -DPYTHON_INCLUDE_DIR=/usr/include/python$${PYX} \
	                      -DPYTHON_EXECUTABLE=/usr/bin/python$${PYX} ; \
	done

	for PYX in $(shell py3versions -rv) ; do \
	    mkdir -p build-$${PYX}; \
	    dh_auto_configure -a --builddirectory=build-$${PYX} -- \
	                      $(CMAKE_COMMON_OPTIONS) \
	                      -DCMAKE_BUILD_TYPE:STRING="Release" \
	                      -DPYTHON_LIBRARY=/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$${PYX}m.so \
	                      -DPYTHON_INCLUDE_DIR=/usr/include/python$${PYX}m \
	                      -DPYTHON_EXECUTABLE=/usr/bin/python$${PYX} ; \
	done
	
	# DEBUG
	for PYX in $(shell pyversions -rv) ; do \
	    mkdir -p build-$${PYX}-dbg; \
	    dh_auto_configure -a --builddirectory=build-$${PYX}-dbg -- \
	                      $(CMAKE_COMMON_OPTIONS) \
	                      -DCMAKE_BUILD_TYPE:STRING="Debug" \
	                      -DPYTHON_LIBRARY=/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$${PYX}.so \
	                      -DPYTHON_DEBUG_LIBRARY=/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$${PYX}_d.so \
	                      -DPYTHON_INCLUDE_DIR=/usr/include/python$${PYX}_d \
	                      -DPYTHON_EXECUTABLE=/usr/bin/python$${PYX}-dbg ; \
	done

	for PYX in $(shell py3versions -rv) ; do \
	    mkdir -p build-$${PYX}-dbg; \
	    dh_auto_configure -a --builddirectory=build-$${PYX}-dbg -- \
	                      $(CMAKE_COMMON_OPTIONS) \
	                      -DCMAKE_BUILD_TYPE:STRING="Debug" \
	                      -DPYTHON_LIBRARY=/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$${PYX}m.so \
	                      -DPYTHON_DEBUG_LIBRARY=/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$${PYX}dm.so \
	                      -DPYTHON_INCLUDE_DIR=/usr/include/python$${PYX}dm \
	                      -DPYTHON_EXECUTABLE=/usr/bin/python$${PYX}dm ; \
	done

#### BUILD ####
override_dh_auto_build:
	for PYX in $(shell pyversions -rv) $(shell py3versions -rv) ; do \
	    dh_auto_build -a --builddirectory=build-$${PYX}; \
	    dh_auto_build -a --builddirectory=build-$${PYX}-dbg; \
	done

#### INSTALL ####
override_dh_auto_install:
	for PYX in $(shell pyversions -rv) ; do \
	    dh_auto_install -a --builddirectory=build-$${PYX} --destdir=debian/tmp; \
	    dh_auto_install -a --builddirectory=build-$${PYX} --destdir=debian/tmp-py2; \
	    dh_auto_install -a --builddirectory=build-$${PYX}-dbg --destdir=debian/tmp-dbg; \
	done
	for PYX in $(shell py3versions -rv) ; do \
	    dh_auto_install -a --builddirectory=build-$${PYX} --destdir=debian/tmp; \
	    dh_auto_install -a --builddirectory=build-$${PYX} --destdir=debian/tmp-py3; \
	    dh_auto_install -a --builddirectory=build-$${PYX}-dbg --destdir=debian/tmp-dbg; \
	done

#### TEST ####
override_dh_auto_test:
ifeq ($(DPKG_ARCH), amd64)
	for PYX in $(shell pyversions -rv) $(shell py3versions -rv) ; do \
	    dh_auto_test -a --builddirectory=build-$${PYX} || true; \
	done
else
	@echo "Skipping tests at the moment"
endif

#### CLEAN ####
override_dh_auto_clean:
	rm -rf build-*
	- rm -rf debian/tmp
	- rm -rf debian/tmp-*

#### INSTALL ####
override_dh_install:
	dh_install \
		-ppython-pyside2-dbg \
		-ppython-pyside2.qtconcurrent-dbg \
		-ppython-pyside2.qtcore-dbg \
		-ppython-pyside2.qtgui-dbg \
		-ppython-pyside2.qthelp-dbg \
		-ppython-pyside2.qtmultimedia-dbg \
		-ppython-pyside2.qtmultimediawidgets-dbg \
		-ppython-pyside2.qtnetwork-dbg \
		-ppython-pyside2.qtopengl-dbg \
		-ppython-pyside2.qtprintsupport-dbg \
		-ppython-pyside2.qtqml-dbg \
		-ppython-pyside2.qtquick-dbg \
		-ppython-pyside2.qtquickwidgets-dbg \
		-ppython-pyside2.qtscript-dbg \
		-ppython-pyside2.qtsql-dbg \
		-ppython-pyside2.qtsvg-dbg \
		-ppython-pyside2.qttest-dbg \
		-ppython-pyside2.qtuitools-dbg \
		-ppython-pyside2.qtwebchannel-dbg \
		-ppython-pyside2.qtwebkit-dbg \
		-ppython-pyside2.qtwebkitwidgets-dbg \
		-ppython-pyside2.qtwebsockets-dbg \
		-ppython-pyside2.qtwidgets-dbg \
		-ppython-pyside2.qtx11extras-dbg \
		-ppython-pyside2.qtxml-dbg \
		-ppython3-pyside2-dbg \
		-ppython3-pyside2.qtconcurrent-dbg \
		-ppython3-pyside2.qtcore-dbg \
		-ppython3-pyside2.qtgui-dbg \
		-ppython3-pyside2.qthelp-dbg \
		-ppython3-pyside2.qtmultimedia-dbg \
		-ppython3-pyside2.qtmultimediawidgets-dbg \
		-ppython3-pyside2.qtnetwork-dbg \
		-ppython3-pyside2.qtopengl-dbg \
		-ppython3-pyside2.qtprintsupport-dbg \
		-ppython3-pyside2.qtqml-dbg \
		-ppython3-pyside2.qtquick-dbg \
		-ppython3-pyside2.qtquickwidgets-dbg \
		-ppython3-pyside2.qtscript-dbg \
		-ppython3-pyside2.qtsql-dbg \
		-ppython3-pyside2.qtsvg-dbg \
		-ppython3-pyside2.qttest-dbg \
		-ppython3-pyside2.qtuitools-dbg \
		-ppython3-pyside2.qtwebchannel-dbg \
		-ppython3-pyside2.qtwebkit-dbg \
		-ppython3-pyside2.qtwebkitwidgets-dbg \
		-ppython3-pyside2.qtwebsockets-dbg \
		-ppython3-pyside2.qtwidgets-dbg \
		-ppython3-pyside2.qtx11extras-dbg \
		-ppython3-pyside2.qtxml-dbg \
	--sourcedir=debian/tmp-dbg --fail-missing
	dh_install -plibpyside2.0 --sourcedir=debian/tmp-py2 --fail-missing
	dh_install -plibpyside-py3-2.0 --sourcedir=debian/tmp-py3 --fail-missing
	dh_install -a --remaining-packages --fail-missing
