#!/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 QMAKE_CFLAGS_RELEASE := $(CFLAGS)
export QMAKE_CFLAGS_DEBUG := $(CFLAGS)
export QMAKE_CXXFLAGS_RELEASE := $(CXXFLAGS)
export QMAKE_CXXFLAGS_DEBUG := $(CXXFLAGS)
export QMAKE_LFLAGS_RELEASE := $(LDFLAGS)
export QMAKE_LFLAGS_DEBUG := $(LDFLAGS)
export QT_SELECT := qt5

# Upstream changelog
upstream_changes := $(wildcard dist/changes-*)

%:
	dh $@ --parallel --dbg-package=qtcreator-dbg --builddirectory=builddir

override_dh_auto_configure:
	# Create some symlinks to jquery stuff.
	ln -s /usr/share/javascript/jquery/jquery.min.js tests/manual/appwizards/htmlimportscenario_01/jquery-1.5.min.js
	mkdir -p src/shared/qbs/doc/templates/scripts
	ln -s /usr/share/javascript/jquery/jquery.min.js src/shared/qbs/doc/templates/scripts/jquery.js
	ln -s /usr/share/javascript/jquery/jquery.min.js doc/templates/scripts/jquery.js
	ln -s /usr/share/javascript/jquery/jquery.min.js doc/titlecase/jquery.js

	mkdir -p builddir
	cd builddir ; \
		qmake -recursive QMAKE_CFLAGS_RELEASE="$(QMAKE_CFLAGS_RELEASE)" \
		QMAKE_CFLAGS_DEBUG="$(QMAKE_CFLAGS_DEBUG)" \
		QMAKE_CXXFLAGS_RELEASE="$(QMAKE_CXXFLAGS_RELEASE)" \
		QMAKE_CXXFLAGS_DEBUG="$(QMAKE_CXXFLAGS_DEBUG)" \
		QMAKE_LFLAGS_RELEASE="$(QMAKE_LFLAGS_RELEASE)" \
		QMAKE_LFLAGS_DEBUG="$(QMAKE_LFLAGS_DEBUG)" \
		QMAKE_STRIP=: \
		PREFIX=/usr/ \
		$(CURDIR) IDE_LIBRARY_BASENAME=lib/$(DEB_HOST_MULTIARCH) IDE_PACKAGE_MODE=1 USE_SYSTEM_BOTAN=1 $(extra_configure_opts)

ifeq ($(DEB_HOST_ARCH),$(findstring $(DEB_HOST_ARCH), armhf))
	# Hack over a g++ problem while using -O2 on armhf.
	# If you don't like this horrible hack please feel free to help me try to
	# reproduce it in a minimal test case so as to be able to properly fill a
	# bug against g++.
	sed -i 's/O2/O1/g' builddir/src/plugins/qmldesigner/Makefile.qmldesignerplugin
endif

override_dh_auto_install:
ifneq (,$(filter qtcreator-doc, $(shell dh_listpackages)))
	dh_auto_build -- qch_docs
endif
	dh_auto_install --destdir=debian/tmp/usr
	dh_auto_build -- install_docs INSTALL_ROOT=$(CURDIR)/debian/tmp/usr

	# Do not install the file, we better symlink it.
	rm -vf debian/tmp/usr/share/qtcreator/debugger/LICENSE.LGPL

	# Fix wrong permissions
	chmod -v 664 debian/tmp/usr/share/qtcreator/qbs/share/qbs/modules/nsis/*.qbs

override_dh_auto_clean:
	dh_auto_clean
	rm -rf doc/html lib/qmldesigner lib/qtcreator/plugins share/doc
	rm -f bin/qtcreator_* lib/qtcreator/lib* lib/qtcreator/qtcomponents/plugin/lib* share/qtcreator/translations/qtcreator_*.qm
	find . -type d -name '.moc' | xargs rm -rf
	find . -type d -name '.obj' | xargs rm -rf
	find . -type d -name '.rcc' | xargs rm -rf
	find . -type d -name '.uic' | xargs rm -rf
	rm -vf tests/manual/appwizards/htmlimportscenario_01/jquery-1.5.min.js
	rm -vf src/shared/qbs/doc/templates/scripts/jquery.js
	rm -vf doc/templates/scripts/jquery.js
	rm -vf doc/titlecase/jquery.js

override_dh_install:
	dh_install --fail-missing

override_dh_installdocs:
	dh_installdocs -pqtcreator-data $(upstream_changes)
	dh_installdocs --remaining-packages

override_dh_shlibdeps:
	dh_shlibdeps -l$(CURDIR)/debian/qtcreator/usr/lib/$(DEB_HOST_MULTIARCH)/qtcreator:\
	$(CURDIR)/debian/qtcreator/usr/lib/$(DEB_HOST_MULTIARCH)/qtcreator/plugins/QtProject
