#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

include /usr/share/dpkg/default.mk
include /usr/share/rustc/architecture.mk

export DEB_HOST_RUST_TYPE
export DEB_HOST_GNU_TYPE
export PATH := /usr/share/cargo/bin:$(PATH)
export CARGO=/usr/share/cargo/bin/cargo
export CARGO_REGISTRY=$(CURDIR)/debian/cargo_registry
export CARGO_HOME=$(CURDIR)/debian/cargo_home
export DEB_CARGO_CRATE=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM)

PKD			= $(word 1,$(abspath $(dir $(MAKEFILE_LIST))))
UVER     		= $(shell echo $(DEB_VERSION) | cut -d "-" -f1)

%:
	dh $@ --buildsystem=cmake


execute_after_dh_auto_clean:
	rm -rf $(CURDIR)/debian/cargo_home
	rm -rf $(CURDIR)/debian/cargo_registry

execute_before_dh_auto_configure:
	/usr/share/cargo/bin/cargo prepare-debian debian/cargo_registry --link-from-system

override_dh_auto_configure:
	# Build vodozemac-bindings static library before cmake configure runs
	# so that Findvodozemac.cmake can find it.
	cd vodozemac-bindings/ && rm -f Cargo.lock
	$(MAKE) -C vodozemac-bindings/cpp BUILD_TYPE=release CARGO_TARGET=$(DEB_HOST_RUST_TYPE) src/lib.rs
	cd vodozemac-bindings/ && cargo generate-lockfile --offline
	$(MAKE) -C vodozemac-bindings/cpp BUILD_TYPE=release CARGO_TARGET=$(DEB_HOST_RUST_TYPE)
	cp vodozemac-bindings/target/$(DEB_HOST_RUST_TYPE)/cxxbridge/vodozemac/src/lib.rs.h \
		vodozemac-bindings/target/$(DEB_HOST_RUST_TYPE)/cxxbridge/vodozemac.h
	# Build libkazv, tests need kazvjob which is broken
	dh_auto_configure -- \
		-Dlibkazv_BUILD_EXAMPLES=OFF \
		-Dlibkazv_BUILD_KAZVJOB=OFF \
		-Dlibkazv_BUILD_TESTS=OFF

override_dh_auto_clean:
	rm -rf vodozemac-bindings/target
	rm -f vodozemac-bindings/cpp/src/lib.rs
	dh_auto_clean

execute_after_dh_auto_install:
	CARGO_BUILT_USING_SRC_DIR=$(CURDIR)/vodozemac-bindings/cpp \
	CARGO_BUILT_USING_TARGET_DIR=vodozemac-bindings/target/$(DEB_HOST_RUST_TYPE)/release \
	/usr/share/cargo/bin/dh-cargo-built-using libkazv8


BINDINGS_VER		= 1.0.0
BINDINGS_ORIG_NAME	= vodozemac-bindings_$(BINDINGS_VER).orig.tar.xz

get-orig-source:
	uscan --noconf --force-download --rename \
		--download-current-version --repack --destdir=..
	uscan --noconf --download --force-download \
		--package vodozemac-bindings \
	       	--watchfile debian/watch.vodozemac-bindings \
		--upstream-version $(BINDINGS_VER) \
		--download-version $(BINDINGS_VER) \
		--rename --destdir=../
	if [ -f $(PKD)/../../$(BINDINGS_ORIG_NAME) ]; then \
		mv -v $(PKD)/../../$(BINDINGS_ORIG_NAME) \
		      $(PKD)/../../libkazv_$(UVER).orig-vodozemac-bindings.tar.xz; \
	fi
