#!/usr/bin/make -f

include /usr/share/dpkg/default.mk
include /usr/share/rustc/architecture.mk
export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
export CARGO_VENDOR_DIR = $(CURDIR)/debian/missing-sources
export DEB_BUILD_MAINT_OPTIONS=hardening=+bindnow

ifeq ($(shell dpkg-vendor --query Vendor),Ubuntu)
EXTRA_GST_PLUGINS = gstreamer1.0-plugins-extra
else
EXTRA_GST_PLUGINS = gstreamer1.0-plugins-bad
endif

%:
	dh $@

override_dh_gencontrol:
	dh_gencontrol -- -V'gstreamer:ExtraPlugins=$(EXTRA_GST_PLUGINS)'

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

override_dh_auto_configure:
	dh_auto_configure -- \
	-Dprofile="default" \
	-Dx11=enabled \

override_dh_auto_test:
	dh_auto_test --  --timeout-multiplier 4

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

	gbp export-orig
	rm debian/source/include-binaries
	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=$$(/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 || true
	git add debian/control
	git commit -m "Update XS-Vendored-Sources-Rust field" || true
	git checkout Cargo.toml

override_dh_clean:
	dh_clean -Xdebian/missing-sources
