#!/usr/bin/make -f

include /usr/share/rustc/architecture.mk
export CARGO=/usr/share/cargo/bin/cargo
export CARGO_HOME=$(CURDIR)/debian/cargo_home
export CARGO_REGISTRY=$(CURDIR)/debian/cargo_registry
export DEB_CARGO_CRATE=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM)
export DEB_HOST_RUST_TYPE

export INSTALL_DIR=$(CURDIR)/debian/lomiri-keepassrx-app/usr
export CARGO_TARGET_DIR=$(CURDIR)/target

%:
	dh $@ --buildsystem cargo

execute_before_dh_auto_configure:
	$(CARGO) prepare-debian debian/cargo_registry --link-from-system

override_dh_auto_build:
	$(CARGO) build --release

override_dh_auto_test-arch:
	$(CARGO) test --release

override_dh_auto_test-indep:
	# no arch-indep tests

# It looks like dh-cargo can't yet handle a workspace Cargo.toml where package isn't set
# so we need to duplicate its install function except for setting path manually
# https://github.com/rust-lang/cargo/issues/7599
override_dh_auto_install:
	env DESTDIR=$(INSTALL_DIR) /usr/bin/cargo install --path $(CURDIR)/keepass-rx
	# Rename things for Debian Lomiri conventions
	# Avoid using dh_install because it seems to delete the translations that
	# upstream's build installs
	mkdir -p $(INSTALL_DIR)/bin $(INSTALL_DIR)/share/applications \
		$(INSTALL_DIR)/share/icons/hicolor/scalable/apps
	mv debian/cargo_home/bin/keepassrx $(INSTALL_DIR)/bin/lomiri-keepassrx-app
	cp keepassrx.desktop $(INSTALL_DIR)/share/applications/lomiri-keepassrx-app.desktop
	cp keepass-rx/assets/logo.svg $(INSTALL_DIR)/share/icons/hicolor/scalable/apps/lomiri-keepassrx-app.svg

# Install handled by dh_auto_install
override_dh_install:

override_dh_auto_clean:
	$(CARGO) clean
