#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk

export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=+lto
#set it in the jenkins amd64 config to be a 48core_amd64 builder
#export DEB_BUILD_OPTIONS = parallel=48
export DH_VERBOSE = 1

PARALLEL_OPTION = $(filter parallel=%,$(DEB_BUILD_OPTIONS))
ifneq (,$(PARALLEL_OPTION))
	NUMJOBS = $(patsubst parallel=%,%,$(PARALLEL_OPTION))
	export NINJAJOBS = -j$(NUMJOBS)
	# Limit parallelism for armhf
	ifeq (armhf, $(DEB_HOST_ARCH))
		ifeq ($(shell test $(NUMJOBS) -gt 6; echo $$?),0)
			export NINJAFLAGS = -j6
			export NINJAJOBS = -j6
		endif
	endif
endif

# Reduce memory consumption on certain architectures
ifeq (armhf, $(DEB_HOST_ARCH))
export LDFLAGS+=-Wl,--no-keep-memory
endif

ifeq (i386, $(DEB_HOST_ARCH))
export LDFLAGS+=-Wl,--no-keep-memory
endif

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

touch_files = src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js \
	      src/3rdparty/chromium/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report-generator.js


override_dh_auto_clean:
	dh_auto_clean

	#rm -f $(CURDIR)/src/3rdparty/chromium/third_party/jstemplate/jstemplate_compiled.js
	for fname in $(touch_files); do \
		rm -f $(CURDIR)/$${fname}; \
	done

override_dh_auto_configure:
	# all files need to exist before configure is run for unity build
	# Create js files, that are needed for building step for arch and indep builds
	#cd $(CURDIR)/src/3rdparty/chromium/third_party/jstemplate/; \
	#cat util.js jsevalcontext.js jstemplate.js exports.js > jstemplate_compiled.js

	# jQuery
	cp /usr/share/javascript/jquery/jquery.min.js examples/webenginewidgets/contentmanipulation/
	cp /usr/share/javascript/jquery/jquery.min.js src/3rdparty/chromium/third_party/pycoverage/coverage/htmlfiles/
	cp /usr/share/javascript/jquery-tablesorter/jquery.tablesorter.min.js src/3rdparty/chromium/third_party/pycoverage/coverage/htmlfiles/

	set -ex; for fname in $(touch_files); do \
		mkdir -p $(CURDIR)/$$(dirname $${fname}); \
		touch $(CURDIR)/$${fname}; \
	done

	dh_auto_configure -- \
		-DCMAKE_MESSAGE_LOG_LEVEL=STATUS \
		-DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) \
		-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
		-DFEATURE_pdf_v8=ON \
		-DFEATURE_pdf_xfa=ON \
		-DFEATURE_pdf_xfa_bmp=ON \
		-DFEATURE_pdf_xfa_gif=ON \
		-DFEATURE_pdf_xfa_png=ON \
		-DFEATURE_pdf_xfa_tiff=ON \
		-DFEATURE_qtpdf_build=ON \
		-DFEATURE_qtpdf_quick_build=ON \
		-DFEATURE_qtpdf_widgets_build=ON \
		-DFEATURE_qtwebengine_quick_build=ON \
		-DFEATURE_qtwebengine_widgets_build=ON \
		-DFEATURE_webengine_kerberos=ON \
		-DFEATURE_webengine_proprietary_codecs=ON \
		-DFEATURE_webengine_system_icu=OFF \
		-DFEATURE_webengine_system_libevent=ON \
		-DFEATURE_webengine_system_libjpeg=on \
		-DFEATURE_webengine_system_libpng=on \
		-DFEATURE_webengine_system_zlib=ON \
		-DFEATURE_webengine_webrtc=ON \
		-DFEATURE_webengine_webrtc_pipewire=ON \
		-DQT_UNITY_BUILD=ON


override_dh_auto_build:
	dh_auto_build
	dh_auto_build -- docs

execute_after_dh_auto_install:
	# 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
	# Install documentation.
	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' {} \;

override_dh_dwz:
