#!/usr/bin/make -f
#export DH_VERBOSE = 1

# Cargo from PATH when the `cargo` package is installed (see Build-Depends).
# Override: `dpkg-buildpackage` → pass through environment, e.g. `CARGO=/path/to/cargo dpkg-buildpackage`.
CARGO ?= cargo
# sbuild sets HOME=/sbuild-nonexistent (not writable); keep cargo state in-tree.
CARGO_HOME := $(CURDIR)/debian/.cargo-home
export CARGO_HOME
# Prefer clang for aws-lc-sys/toolchain compatibility.
CC := $(shell command -v clang 2>/dev/null || command -v clang-10 2>/dev/null || command -v cc 2>/dev/null)
export CC
DEB_HOST_RUST_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE | sed 's/-gnu$$/_unknown_linux_gnu/' | tr '-' '_')
export CC_$(DEB_HOST_RUST_TYPE)=$(CC)

define setup_cargo_home
	mkdir -p "$(CARGO_HOME)"
	cp debian/cargo-config.toml "$(CARGO_HOME)/config.toml"
endef

%:
	dh $@

# debhelper does not detect Rust/Cargo; build the workspace explicitly.
override_dh_auto_build:
	$(setup_cargo_home)
	$(CARGO) build --release --locked

override_dh_auto_install:
	install -D -m 0755 target/release/kylinbot \
		debian/kylin-bot/usr/bin/kylin-bot
	# Install default skills and config to /usr/share/kylinbot
	debian/check-packaged-config-paths.sh debian/kylinbot
	install -d debian/kylin-bot/usr/share/kylinbot
	cp -a debian/kylinbot/. debian/kylin-bot/usr/share/kylinbot/
	# Desktop session autostart (XDG)
	install -D -m 0644 debian/kylin-bot-autostart.desktop \
		debian/kylin-bot/etc/xdg/autostart/kylin-bot-autostart.desktop

# GUI integration tests are not suitable for default package builds.
override_dh_auto_test:
	:

override_dh_auto_clean:
	dh_auto_clean
	-$(setup_cargo_home)
	-$(CARGO) clean
	rm -rf debian/.cargo-home

override_dh_shlibdeps:
	@echo "skip dh_shlibdeps intentionally"
