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

export DPKG_GENSYMBOLS_CHECK_LEVEL=4
export LOMIRI_CONTENT_HUB_TESTING=1
export DEB_BUILD_MAINT_OPTIONS=hardening=+all

CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) $(CPPFLAGS)
CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) $(CPPFLAGS)
LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS)

PROJECT_DH_OPTIONS = --with click
ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
  PROJECT_DH_OPTIONS += --with migrations
endif

# Disable coverage reporting, enable locally for introspecting test coverage
CONFIGURE_OPTS += -DENABLE_COVERAGE=OFF

ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
  CONFIGURE_OPTS += -DENABLE_TESTS=OFF
  DEB_BUILD_PROFILES += noinsttest
endif

ifneq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS)))
  CONFIGURE_OPTS += -DENABLE_DOC=OFF
endif

# Skip tests on architectures where tests are being flaky, timeout, etc.
TESTSKIP_ARCHITECTURES_QT6 := armhf
TESTSKIP_ARCHITECTURES_QT5 :=

%:
	dh $@ $(PROJECT_DH_OPTIONS)

override_dh_auto_configure:
	dh_auto_configure --builddirectory=build-qt6 --buildsystem=cmake -- $(CONFIGURE_OPTS) -DENABLE_QT6=ON  -DENABLE_DOC=OFF -DENABLE_UBUNTU_COMPAT=OFF ..
	dh_auto_configure --builddirectory=build-qt5 --buildsystem=cmake -- $(CONFIGURE_OPTS) -DENABLE_QT6=OFF -DENABLE_DOC=ON  -DENABLE_UBUNTU_COMPAT=ON  ..

override_dh_auto_build:
	dh_auto_build --builddirectory=build-qt6 --buildsystem=cmake ..
	dh_auto_build --builddirectory=build-qt5 --buildsystem=cmake ..

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
ifeq (,$(filter $(DEB_HOST_ARCH),$(TESTSKIP_ARCHITECTURES_QT6)))
	dh_auto_test --builddirectory=build-qt6 --buildsystem=cmake --no-parallel ..
endif
ifeq (,$(filter $(DEB_HOST_ARCH),$(TESTSKIP_ARCHITECTURES_QT5)))
	dh_auto_test --builddirectory=build-qt5 --buildsystem=cmake --no-parallel ..
endif
endif

override_dh_auto_install:
ifneq (,$(findstring nocheck,$(DEB_BUILD_PROFILES)))
	mkdir -p debian/lomiri-content-hub-testability
endif
	dh_auto_install --builddirectory=build-qt6 --buildsystem=cmake ..
	dh_auto_install --builddirectory=build-qt5 --buildsystem=cmake ..
	dh_apparmor -plomiri-content-hub-testability --profile-name=lomiri-content-hub-testability
	mkdir -p debian/tmp/var/cache/lomiri-content-hub/peers

override_dh_missing:
	dh_missing --fail-missing

override_dh_auto_clean:
	dh_auto_clean --builddirectory=build-qt6 --buildsystem=cmake ..
	dh_auto_clean --builddirectory=build-qt5 --buildsystem=cmake ..
