#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
export DEB_BUILD_OPTIONS+=nocheck
export DEB_BUILD_OPTIONS+="parallel=`nproc`"
export MY_INSTALL_ROOT=$(CURDIR)/install-root
#export QTVERSION=$(shell qmake -query QT_VERSION)

%:
	dh $@ --buildsystem=cmake --builddirectory=subsurface-build --parallel

override_dh_auto_clean:
	(cd libdivecomputer ; make clean || true)
	rm -f Documentation/user-manual.html
	rm -f libdivecomputer/Makefile.in
	rm -f libdivecomputer/aclocal.m4
	rm -f libdivecomputer/ar-lib
	rm -f libdivecomputer/compile
	rm -f libdivecomputer/config.guess
	rm -f libdivecomputer/config.h.in
	rm -f libdivecomputer/config.sub
	rm -f libdivecomputer/configure
	rm -f libdivecomputer/depcomp
	rm -f libdivecomputer/examples/Makefile.in
	rm -f libdivecomputer/include/Makefile.in
	rm -f libdivecomputer/include/libdivecomputer/Makefile.in
	rm -f libdivecomputer/install-sh
	rm -f libdivecomputer/ltmain.sh
	rm -f libdivecomputer/m4/libtool.m4
	rm -f libdivecomputer/m4/ltoptions.m4
	rm -f libdivecomputer/m4/ltsugar.m4
	rm -f libdivecomputer/m4/ltversion.m4
	rm -f libdivecomputer/m4/lt~obsolete.m4
	rm -f libdivecomputer/missing
	rm -f libdivecomputer/src/Makefile.in
	rm -rf install-root
	rm -rf libgit2/build
	rm -rf googlemaps-ssrf/build
	rm -rf googlemaps-qt6/build
	rm -rf subsurface-build

override_dh_auto_configure:
	mkdir -p install-root
	(mkdir -p $(MY_INSTALL_ROOT)/include/QtLocation/private; \
		find qtlocation-qt6/src/location -name '*_p.h' -print0 | xargs -0 cp -vt $(MY_INSTALL_ROOT)/include/QtLocation/private)
	(mkdir -p googlemaps-qt6/build ; cd googlemaps-qt6/build ; \
		qmake6 "INCLUDEPATH=$(MY_INSTALL_ROOT)/include" ../googlemaps.pro ; \
		make -j`nproc` ; \
		INSTALL_ROOT=$(MY_INSTALL_ROOT) make install ; \
		ln -sf $(MY_INSTALL_ROOT)/usr/lib/x86_64-linux-gnu/qt6/plugins/geoservices/*.so $(MY_INSTALL_ROOT))
	(cd libdivecomputer ; \
		if test -f $$(pwd)/../irda/src/include/linux/irda.h; then \
			export CFLAGS="$$CFLAGS -I$$(pwd)/../irda/src/include"; \
		fi; \
		 autoreconf --install ; \
		./configure --disable-examples --prefix=$(MY_INSTALL_ROOT) --disable-shared ; \
		make -j`nproc` ; \
		make install)
	(mkdir subsurface-build ; cd subsurface-build ;  \
		cmake -DCMAKE_BUILD_TYPE=Release \
			-DCMAKE_INSTALL_PREFIX=/usr \
			-DLIBGIT2_FROM_PKGCONFIG=ON \
			-DLIBDIVECOMPUTER_INCLUDE_DIR=$(MY_INSTALL_ROOT)/include \
			-DLIBDIVECOMPUTER_LIBRARIES=$(MY_INSTALL_ROOT)/lib/libdivecomputer.a \
			-DFORCE_LIBSSH=1 \
			-DNO_PRINTING=OFF \
			-DBUILD_TESTS=OFF \
			-DBUILD_WITH_QT6=ON \
			$$(pwd)/.. ; )
	(mkdir downloader-build ; cd downloader-build ;  \
		cmake -DCMAKE_BUILD_TYPE=Release \
			-DCMAKE_INSTALL_PREFIX=/usr \
			-DLIBGIT2_FROM_PKGCONFIG=ON \
			-DLIBDIVECOMPUTER_INCLUDE_DIR=$(MY_INSTALL_ROOT)/include \
			-DLIBDIVECOMPUTER_LIBRARIES=$(MY_INSTALL_ROOT)/lib/libdivecomputer.a \
			-DFORCE_LIBSSH=1 \
			-DNO_PRINTING=OFF \
			-DBUILD_TESTS=OFF \
			-DBUILD_WITH_QT6=ON \
			-DSUBSURFACE_TARGET_EXECUTABLE=DownloaderExecutable \
			$$(pwd)/.. ; )

override_dh_installchangelogs:
	dh_installchangelogs
	dh_installchangelogs ReleaseNotes/ReleaseNotes.txt
	mkdir -p debian/subsurface/usr/share/subsurface/Documentation
	cp -r Documentation/output/. debian/subsurface/usr/share/subsurface/Documentation

override_dh_auto_build:
	(cd subsurface-build ; make -j`nproc`)
	(cd downloader-build ; make -j`nproc`)
	(cd Documentation ; make -j`nproc` doc)

override_dh_auto_install:
	(cd subsurface-build ; DESTDIR=$(CURDIR)/debian/subsurface $(MAKE) install)
	(cd googlemaps-qt6/build ; INSTALL_ROOT=$(CURDIR)/debian/subsurface $(MAKE) install)
	(cd downloader-build ; DESTDIR=$(CURDIR)/debian/subsurface-downloader $(MAKE) install)
	mkdir -p $(CURDIR)/debian/subsurface-common/usr/share
	mv -fv $(CURDIR)/debian/subsurface/usr/share/subsurface $(CURDIR)/debian/subsurface-common/usr/share/
	rm -rf $(CURDIR)/debian/subsurface-downloader/usr/share/subsurface
	mv -fv $(CURDIR)/debian/subsurface/usr/share/icons $(CURDIR)/debian/subsurface-common/usr/share/
	rm -rf $(CURDIR)/debian/subsurface-downloader/usr/share/icons
	mv -fv $(CURDIR)/debian/subsurface/usr/share/metainfo $(CURDIR)/debian/subsurface-common/usr/share/
	rm -rf $(CURDIR)/debian/subsurface-downloader/usr/share/metainfo
	rm -rf $(CURDIR)/debian/subsurface-downloader/usr/share/applications
	install -m 755 -D -t $(CURDIR)/debian/subsurface-downloader/usr/share/subsurface/cgi-bin $(CURDIR)/scripts/downloader.pl
	sed -i 's,/home/pi/[^ ]*/subsurface-downloader,/usr/bin/subsurface-downloader,g' $(CURDIR)/debian/subsurface-downloader/usr/share/subsurface/cgi-bin/downloader.pl
	mv -vi $(CURDIR)/debian/subsurface-downloader/usr/bin/subsurface.debug $(CURDIR)/debian/subsurface-downloader/usr/bin/subsurface-downloader.debug
	sed -i 's/^bin_name=subsurface$$/bin_name=subsurface-downloader/' $(CURDIR)/debian/subsurface-downloader/usr/bin/subsurface-downloader.debug
