#!/usr/bin/make -f

# Use already defined DEB_HOST_* variables.
include /usr/share/dpkg/architecture.mk

export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=+lto

# QT_HOST_PATH isn't passed in cross-builds
ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
	extra_cmake_args += \
		-DQT_HOST_PATH=/usr \
		-DQT_HOST_PATH_CMAKE_DIR=/usr/lib/${DEB_BUILD_MULTIARCH}/cmake \
		-DQT_FORCE_BUILD_TOOLS=ON
endif

# Force build with GCC-14 on armel
ifeq (armel, $(DEB_HOST_ARCH))
	export CC=gcc-14
	export CXX=g++-14
endif

# Disable the JIT on x32 for now, because of 32bit vs 64bit assembler mismatches
ifeq (x32, $(DEB_HOST_ARCH))
	extra_cmake_args += -DFEATURE_qml_jit=OFF
endif

%:
	dh $@ --buildsystem=cmake+ninja

override_dh_auto_configure:
	dh_auto_configure -- \
		--log-level=STATUS \
		-DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) \
		-DINSTALL_PUBLICBINDIR=/usr/bin \
		$(extra_cmake_args)

override_dh_shlibdeps:
	dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

override_dh_makeshlibs:
	dh_makeshlibs \
		-XlibQt6QuickControls2Impl \
		-XlibQt6QuickControls2Basic \
		-XlibQt6QuickControls2BasicStyleImpl \
		-XlibQt6QuickControls2Fusion \
		-XlibQt6QuickControls2FusionStyleImpl \
		-XlibQt6QuickControls2Imagine \
		-XlibQt6QuickControls2ImagineStyleImpl \
		-XlibQt6QuickControls2Material \
		-XlibQt6QuickControls2MaterialStyleImpl \
		-XlibQt6QuickControls2Universal \
		-XlibQt6QuickControls2UniversalStyleImpl

override_dh_qmldeps:
	LD_LIBRARY_PATH=debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/ dh_qmldeps

override_dh_auto_build-indep:
	dh_auto_build -- docs

override_dh_auto_install-indep:
	DESTDIR=$(CURDIR)/debian/tmp dh_auto_build -- install_docs
	# Remove build path from index files.
	find $(CURDIR)/debian/tmp/usr/share/qt6/doc -type f -name *.index -exec \
               sed -i 's@$(CURDIR)/@@g' {} \;

execute_after_dh_auto_install-arch:
	# Reproducible builds: remove build paths from .prl files
	sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libQt6*.prl
