#!/usr/bin/make -f

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

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
PRIVATE_HEADERS = debian/qtdeclarative5-private-dev/usr/include/$(DEB_HOST_MULTIARCH)/qt5

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

# Skip tests on the archs they are known to be flaky with current configuration
testskip_architectures := powerpc ppc64el

%:
	dh $@ --parallel --with pkgkde_symbolshelper --dbg-package=qtdeclarative5-dbg

override_dh_auto_configure:
	qmake QT_BUILD_PARTS+=tests

override_dh_auto_build-indep:
	dh_auto_build -Smakefile -- html_docs

override_dh_auto_install-arch:
	dh_auto_install

	# Fix wrong path in pkgconfig files
	find $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/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/Qt5Qml/*Plugin.cmake

	# Fix wrong permissions in examples.
	find $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/ -type f \( \
	-name '*.png' \
	-o -name '*.php' \
	-o -name '*.xsl' \
	-o -name '*.xml' \
	-o -name '*.js' \
	-o -name '*.jpg' \
	-o -name '*.qml' \
	\) -print0 | xargs -0 chmod a-x

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

override_dh_install:
	# Remove empty directories.
	find $(CURDIR)/debian/tmp -type d -empty -delete
	# Install stuff.
	dh_install --fail-missing

override_dh_link:
	dh_link
	@VERSION=$$(ls $(PRIVATE_HEADERS)/QtQml); \
	set -e; for h in $$(ls $(PRIVATE_HEADERS)/QtQmlDevTools/$$VERSION/QtQmlDevTools/private/); do \
		if [ -f $(PRIVATE_HEADERS)/QtQml/$$VERSION/QtQml/private/$$h ]; then \
			echo "Symlinking QtQmlDevTools/private/$$h -> QtQml/private/$$h"; \
			ln -sf ../../../../QtQml/$$VERSION/QtQml/private/$$h \
				$(PRIVATE_HEADERS)/QtQmlDevTools/$$VERSION/QtQmlDevTools/private/$$h; \
		fi; \
	done

override_dh_makeshlibs:
	dh_makeshlibs
	# Check for private symbols not marked as such. Be verbose.
	pkgkde-mark-private-symbols debian/qtdeclarative5-private-dev/usr/include

override_dh_auto_test:
	cp -a src/imports/qtquick2/qmldir qml/QtQuick.2
	cp -a src/imports/folderlistmodel/qmldir qml/Qt/labs/folderlistmodel/
	cp -a src/imports/settings/qmldir qml/Qt/labs/settings/
	cp -a src/imports/window/qmldir qml/QtQuick/Window.2/
	cp -a src/imports/models/qmldir qml/QtQml/Models.2/
	cp -a src/imports/testlib/qmldir qml/QtTest
	cp -a src/imports/testlib/TestCase.qml qml/QtTest
	cp -a src/imports/testlib/SignalSpy.qml qml/QtTest
	cp -a src/imports/testlib/testlogger.js qml/QtTest
ifneq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), $(testskip_architectures)))
ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
	xvfb-run -a -s "-screen 0 1024x768x24 +extension RANDR +extension RENDER +extension GLX" dh_auto_test -- QT_PLUGIN_PATH=$(CURDIR)/plugins LD_LIBRARY_PATH=$(CURDIR)/lib QML2_IMPORT_PATH=$(CURDIR)/qml
endif
endif
