#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1

export DH_BUILD_MAINT_OPTIONS = hardening=+all
include /usr/share/dpkg/pkg-info.mk
export HOME=$(CURDIR)/fakehome
export SEQAN3_NO_VERSION_CHECK=1

# maybe not needed with gcc-9 ?
# DEB_BUILD_ARCH          ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
# ifneq (,$(filter mips mipsel mips64el,$(DEB_BUILD_ARCH)))
# 	DEB_CXXFLAGS_MAINT_APPEND+=-mxgot
# endif
# ifneq (,$(filter mips mipsel,$(DEB_BUILD_ARCH)))
# 	DEB_CXXFLAGS_MAINT_APPEND+=-g1
# 	DEB_CFLAGS_MAINT_APPEND+=-g1
# endif
# As per upstream's instructions
export DEB_CFLAGS_MAINT_APPEND+=-O3
export DEB_CXXFLAGS_MAINT_APPEND+=-DNDEBUG -O3

# maybe not needed with gcc-9 ?
# MAX_PARALLEL=""
# # Disable or limit parallel building on some build archs to save memory
# ifneq (,$(filter armel armhf mips mipsel sh4 kfreebsd% powerpcspe,$(DEB_BUILD_ARCH)))
# 	MAX_PARALLEL=--max-parallel=1
# else ifneq (,$(filter amd64,$(DEB_BUILD_ARCH)))
# 	MAX_PARALLEL=--max-parallel=2
# endif


pkgdev=libseqan3-dev

%:
	dh $@ --builddirectory=build --sourcedirectory=test/unit --buildsystem=cmake+ninja

override_dh_auto_configure-arch:
	dh_auto_configure --builddirectory=build_unit --sourcedirectory=test/unit --buildsystem=cmake+ninja
	# dh_auto_configure --builddirectory=build_header --sourcedirectory=test/header --buildsystem=cmake+ninja
	# needs libbenchmark-dev >= 1.5.0
	dh_auto_configure --builddirectory=build_snippet --sourcedirectory=test/snippet --buildsystem=cmake+ninja

override_dh_auto_configure-indep:
	dh_auto_configure --builddirectory=build_documentation --sourcedirectory=test/documentation --buildsystem=cmake+ninja

override_dh_auto_build-arch:
	dh_auto_build --builddirectory=build_unit --sourcedirectory=test/unit --buildsystem=cmake+ninja
	# dh_auto_build --builddirectory=build_header --sourcedirectory=test/header --buildsystem=cmake+ninja
	dh_auto_build --builddirectory=build_snippet --sourcedirectory=test/snippet --buildsystem=cmake+ninja

override_dh_auto_build-indep:
	dh_auto_build --builddirectory=build_documentation --sourcedirectory=test/documentation --buildsystem=cmake+ninja

override_dh_auto_install:
	# dh_auto_install --builddirectory=build_unit --sourcedirectory=test/unit --buildsystem=cmake+ninja
	# dh_auto_install --builddirectory=build_header --sourcedirectory=test/header --buildsystem=cmake+ninja
	# dh_auto_install --builddirectory=build_snippet --sourcedirectory=test/snippet --buildsystem=cmake+ninja
	# dh_auto_install --builddirectory=build_documentation --sourcedirectory=test/documentation --buildsystem=cmake+ninja

override_dh_auto_clean-arch:
	dh_auto_clean --builddirectory=build_unit --sourcedirectory=test/unit --buildsystem=cmake+ninja
	#dh_auto_clean --builddirectory=build_header --sourcedirectory=test/header --buildsystem=cmake+ninja
	dh_auto_clean --builddirectory=build_snippet --sourcedirectory=test/snippet --buildsystem=cmake+ninja

override_dh_auto_clean-indep:
	dh_auto_clean --builddirectory=build_documentation --sourcedirectory=test/documentation --buildsystem=cmake+ninja

override_dh_auto_test-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	cd build_unit && /usr/bin/cmake -E cmake_echo_color --switch= --cyan "Running tests..." \
		&& /usr/bin/ctest --force-new-ctest-process --output-on-failure -E version_check_
	#dh_auto_test --builddirectory=build_header --sourcedirectory=test/header --buildsystem=cmake+ninja
	dh_auto_test --builddirectory=build_snippet --sourcedirectory=test/snippet --buildsystem=cmake+ninja
endif

override_dh_auto_test-indep:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	#dh_auto_test --builddirectory=build_documentation --sourcedirectory=test/documentation --buildsystem=cmake+ninja
	# fails due to same error ignored in the build
endif


override_dh_auto_install-indep:
	dh_auto_install --indep -B build_unit --destdir=$(CURDIR)/debian/$(pkgdev)/
	dh_auto_install --indep -B build_documentation --destdir=$(CURDIR)/debian/$(pkgdev)/
	rm -Rf $(CURDIR)/debian/$(pkgdev)/usr/share/doc/seqan

override_dh_installdocs-indep:
	dh_installdocs  --doc-main-package libseqan3-dev
	dh_doxygen

override_dh_install-indep:
	dh_install --indep

override_dh_install-arch:
	dh_install --arch
	if [ -d $(CURDIR)/debian/$(pkgdev) ] ; then \
	    find $(CURDIR)/debian/$(pkgdev) -type f -name LICENSE -delete ; \
	    find $(CURDIR)/debian/$(pkgdev) -type f -name license.txt -delete ; \
	    find $(CURDIR)/debian/$(pkgdev) -type f -name .gitignore -delete ; \
	fi
