#!/usr/bin/make -f

include /usr/share/dpkg/default.mk
include debian/opts.mk

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DPKG_GENSYMBOLS_CHECK_LEVEL = 4

%:
	dh $@ -Bbuild-$(DEB_HOST_ARCH)

# Enable verbose debugging output from the testsuite
export MIR_SERVER_LOGGING = on
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
  ifeq ($(DEB_HOST_ARCH_ENDIAN),little)
	GTEST_OUTPUT=xml:./ dh_auto_build -- ARGS="-V" ptest
  else
	echo "Testsuite disabled on $(DEB_HOST_ARCH) due to lack of big-endian support."
  endif
else
	echo "Testsuite disabled due to DEB_BUILD_OPTIONS=\"$(DEB_BUILD_OPTIONS)\""
endif

COMMON_CONFIGURE_OPTIONS = \
  -DCMAKE_INSTALL_LIBEXECDIR="lib/$(DEB_HOST_MULTIARCH)/mir"\
  -DMIR_BUILD_INTERPROCESS_TESTS=OFF\
  -DMIR_DPKG_GENSYMBOLS=OFF\

ifeq ($(filter noopt,$(DEB_BUILD_OPTIONS)),noopt)
	COMMON_CONFIGURE_OPTIONS += -DMIR_LINK_TIME_OPTIMIZATION=OFF
else
	COMMON_CONFIGURE_OPTIONS += -DMIR_LINK_TIME_OPTIMIZATION=ON
endif

$(info COMMON_CONFIGURE_OPTIONS: ${COMMON_CONFIGURE_OPTIONS})

AVAILABLE_PLATFORMS=gbm-kms\;x11\;wayland\;eglstream-kms

override_dh_auto_configure:
ifneq ($(filter armhf,$(DEB_HOST_ARCH)),)
	dh_auto_configure -- \
	  $(COMMON_CONFIGURE_OPTIONS) \
	  -DMIR_RUN_ACCEPTANCE_TESTS=OFF \
	  -DMIR_RUN_INTEGRATION_TESTS=OFF \
	  -DMIR_PLATFORM=$(AVAILABLE_PLATFORMS) \
	  $(OVERRIDE_CONFIGURE_OPTIONS)
else
	dh_auto_configure -- \
	  $(COMMON_CONFIGURE_OPTIONS) \
	  -DMIR_PLATFORM=$(AVAILABLE_PLATFORMS) \
	  $(OVERRIDE_CONFIGURE_OPTIONS)
endif
	# Run cmake again to pick up wlcs tests, because reasons?
	cmake build-$(DEB_HOST_ARCH)

# Only build the docs when we need them
override_dh_auto_build-indep:
	dh_auto_build -- doc

# Reconstruct the MirAL version
MIRAL_VERSION_MAJOR = $(shell perl -n -e '/^set\(MIRAL_VERSION_MAJOR ([0-9]*)\)$$/ && print $$1' src/CMakeLists.txt)
MIRAL_VERSION_MINOR = $(shell perl -n -e '/^set\(MIRAL_VERSION_MINOR ([0-9]*)\)$$/ && print $$1' src/CMakeLists.txt)
MIRAL_VERSION_PATCH = $(shell perl -n -e '/^set\(MIRAL_VERSION_PATCH ([0-9]*)\)$$/ && print $$1' src/CMakeLists.txt)
MIRAL_RELEASE=$(MIRAL_VERSION_MAJOR).$(MIRAL_VERSION_MINOR).$(MIRAL_VERSION_PATCH)
MIRAL_VERSION=$(MIRAL_RELEASE).$(DEB_VERSION)

# TODO: we'll use a symbol file once mir is abi stable
override_dh_makeshlibs:
	dh_makeshlibs -Nlibmiral4 -V -Nmir-test-tools
	# libmiral4 *has* a symbols file, so we don't need to -V it!
	dh_makeshlibs -plibmiral4 -- -v$(MIRAL_RELEASE)

# Don't try to strip libraries used as test data
override_dh_strip:
	dh_strip -Xmir-test-data

# Don't try to find dependencies of libraries used as test data
override_dh_shlibdeps:
	dh_shlibdeps -Xmir-test-data

override_dh_gencontrol:
	dh_gencontrol -Nlibmiral4 -Nlibmiral-dev
	dh_gencontrol -plibmiral4 -plibmiral-dev -- -v$(MIRAL_VERSION) -V'libmiral4:Version=$(MIRAL_VERSION)'
