#!/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/default.mk
export HOME=$(CURDIR)/fakehome
export SEQAN3_NO_VERSION_CHECK=1

# Use the gold linker where we can
ifeq (,$(filter $(DEB_HOST_ARCH),hppa ia64 m68k riscv64 sh4))
export LD=ld.gold
DEB_CFLAGS_MAINT_APPEND+=-fuse-ld=gold
DEB_CXXFLAGS_MAINT_APPEND+=-fuse-ld=gold
endif

export DEB_CFLAGS_MAINT_APPEND+=-O3
export DEB_CXXFLAGS_MAINT_APPEND+=-DNDEBUG -O3 -std=c++2a

pkgdev=libseqan3-dev

%:
	dh $@

override_dh_auto_configure-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_PROFILES)))
	dh_auto_configure --builddirectory=build_unit --sourcedirectory=test/unit --buildsystem=cmake+ninja
	dh_auto_configure --builddirectory=build_header --sourcedirectory=test/header --buildsystem=cmake+ninja
	dh_auto_configure --builddirectory=build_snippet --sourcedirectory=test/snippet --buildsystem=cmake+ninja
	dh_auto_configure --builddirectory=build_performance --sourcedirectory=test/performance --buildsystem=cmake+ninja
endif

override_dh_auto_configure-indep:
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
	dh_auto_configure --builddirectory=build_documentation --sourcedirectory=test/documentation --buildsystem=cmake+ninja
endif

override_dh_auto_build-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_PROFILES)))
	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
	dh_auto_build --builddirectory=build_performance --sourcedirectory=test/performance --buildsystem=cmake+ninja
endif

override_dh_auto_build-indep:
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
	dh_auto_build --builddirectory=build_documentation --sourcedirectory=test/documentation --buildsystem=cmake+ninja
endif

override_dh_auto_clean-arch:
	dh_auto_clean --builddirectory=build_unit --sourcedirectory=test/unit --buildsystem=cmake+ninja || /bin/true
	dh_auto_clean --builddirectory=build_header --sourcedirectory=test/header --buildsystem=cmake+ninja || /bin/true
	dh_auto_clean --builddirectory=build_snippet --sourcedirectory=test/snippet --buildsystem=cmake+ninja || /bin/true
	dh_auto_clean --builddirectory=build_performance --sourcedirectory=test/performance --buildsystem=cmake+ninja || /bin/true

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

override_dh_auto_test-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_PROFILES)))
	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
	dh_auto_test --builddirectory=build_performance --sourcedirectory=test/performance --buildsystem=cmake+ninja
endif

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

override_dh_auto_install-arch:
	echo Nothing to install with dh_auto_install

override_dh_auto_install-indep:
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
	rm -Rf $(CURDIR)/debian/$(pkgdev)/usr/share/doc/seqan
endif

override_dh_installdocs-indep:
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
	dh_installdocs  --doc-main-package libseqan3-dev
	dh_doxygen
endif

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
