#!/usr/bin/make -f

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

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

export CFLAGS := $(shell dpkg-buildflags --get CFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
export CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed
export QT_SELECT := qt5

# Retrieve packages that have a .install-common file
pkgs_with_common = $(patsubst debian/%.install-common,%,$(wildcard debian/*.install-common))
# Retrieve packages that have a .install-$DEB_HOST_ARCH file
pkgs_with_arch = $(patsubst debian/%.install-$(DEB_HOST_ARCH),%,$(wildcard debian/*.install-$(DEB_HOST_ARCH)))
# Retrieve packages that have a .install-$DEB_HOST_ARCH_OS file
pkgs_with_os = $(patsubst debian/%.install-$(DEB_HOST_ARCH_OS),%,$(wildcard debian/*.install-$(DEB_HOST_ARCH_OS)))

%:
	dh $@ --parallel --with pkgkde_symbolshelper

override_dh_auto_configure:
	# Regenerate headers for the upstream audio role patch backport
	mkdir .git
	qmake

override_dh_auto_build-indep:
	dh_auto_build -Smakefile -- docs

override_dh_auto_test-arch:
	cd tests/auto/unit && qmake unit.pro && xvfb-run -a -s "-screen 0 1024x768x24 +extension RANDR +extension RENDER +extension GLX" make check QT_PLUGIN_PATH=$(CURDIR)/plugins LD_LIBRARY_PATH=$(CURDIR)/lib QML2_IMPORT_PATH=$(CURDIR)/qml

# Do not attempt to run tests during indep build
override_dh_auto_test-indep:

override_dh_auto_install-arch:
	dh_auto_install

	# Move private headers out of debian/tmp.
	mkdir -p debian/private-headers
	mv -v debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/qt5/QtMultimedia/*/QtMultimedia/private \
		debian/private-headers/QtMultimedia
	mv -v debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/qt5/QtMultimediaWidgets/*/QtMultimediaWidgets/private \
		debian/private-headers/QtMultimediaWidgets
	mv -v debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/qt5/QtMultimediaQuick_p debian/private-headers/

	# Remove some other private stuff.
	rm -fv debian/tmp/usr/lib/*/qt5/mkspecs/modules/qt_lib_multimedia_private.pri
	rm -fv debian/tmp/usr/lib/*/qt5/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri
	rm -fv debian/tmp/usr/lib/*/qt5/mkspecs/modules/qt_lib_multimediawidgets_private.pri

	# Fix wrong path in pkgconfig files
	find $(CURDIR)/debian/tmp/usr/lib/*/pkgconfig -type f -name '*.pc' \
	-exec sed -i -e 's/$(DEB_HOST_MULTIARCH)\/$(DEB_HOST_MULTIARCH)/$(DEB_HOST_MULTIARCH)/g' {} \;

	# Remove libtool-like files
	rm -f debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/*.la

	# Remove CMake files for plugins, we don't need them.
	rm -fv debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/cmake/Qt5Multimedia/*Plugin.cmake

	# Remove empty directories.
	find debian/tmp -type d -empty -delete

override_dh_auto_install-indep:
	make INSTALL_ROOT=$(CURDIR)/debian/tmp install_docs

override_dh_makeshlibs:
	dh_makeshlibs
	# Check for private symbols not marked as such.
	pkgkde-mark-private-symbols debian/private-headers

override_dh_clean:
	dh_clean
	rm -rfv debian/private-headers

	# Don't forget to remove the .install files we generated.
	for pkg in $(pkgs_with_common); do \
		rm -f debian/$$pkg.install ; \
	done

	for pkg in $(pkgs_with_arch); do \
		rm -f debian/$$pkg.install ; \
	done

	for pkg in $(pkgs_with_os); do \
		rm -f debian/$$pkg.install ; \
	done

