#!/usr/bin/make -f

export DPKG_GENSYMBOLS_CHECK_LEVEL = 4

export DEB_BUILD_MAINT_OPTIONS=hardening=+bindnow

# Disable lto on 32-bit arches since it OOMs otherwise
ifeq ($(DEB_HOST_ARCH_BITS),32)
export DEB_BUILD_OPTIONS += optimize=-lto
endif

%:
	dh $@ --buildsystem=meson+ninja

override_dh_auto_test:
	# RUST_TEST_NOCAPTURE=1: Tell Rust not to hide the GStreamer logs
	# RUST_BACKTRACE=1: Print stack trace on panic
	export GST_DEBUG=3 && \
	export GST_DEBUG_NO_COLOR=1 && \
	export RUST_TEST_NOCAPTURE=1 && \
	export RUST_BACKTRACE=1 && \
	dh_auto_test

override_dh_auto_clean:
	dh_auto_clean
	rm -rf debian/cargo_registry
	rm -f debian/cargo-checksum.json

vendor:
	dh_quilt_patch
	rm -f .cargo/config
	rm -rf debian/missing-sources/
	$ cargo vendor-filterer --platform='*-*-linux-gnu' --platform '*-*-linux-gnueabi' \
	  --exclude-crate-path system-deps#src/tests/lib/libteststatic.a --all-features \
	  debian/missing-sources/
	git add -f debian/missing-sources
	git commit -m "Update vendored rust crates" || true
	git reset --hard && git clean -fdx

	env QUILT_PATCH_DIR=debian/missing-sources-patches dh_quilt_patch
	git add -f debian/missing-sources
	git commit -m "Apply patches to vendored rust crates" || true
	git reset --hard && git clean -fdx

	uscan --download-current-version --destdir=..
	rm debian/source/include-binaries || true
	dpkg-source --include-binaries -b .
	git add debian/source/include-binaries
	git commit -m "Update debian/source/include-binaries" || true
	git reset --hard && git clean -fdx

	rm Cargo.toml
	VENDORED_SOURCES=$$(CARGO_VENDOR_DIR=debian/missing-sources/ /usr/share/cargo/bin/dh-cargo-vendored-sources 2>&1 | grep "^XS-Vendored-Sources-Rust:") \
	  && sed -i "s/^XS-Vendored-Sources-Rust:.*/$${VENDORED_SOURCES}/" debian/control
	git add debian/control
	git commit -m "Update XS-Vendored-Sources-Rust field" || true
	git checkout Cargo.toml
