#!/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
# 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)
GIO_VERSION := $(shell pkg-config --modversion gio-2.0 2>/dev/null || echo 0)
GIO_SWITCH_VERSION ?= 2.70

%:
	dh $@

# debhelper does not detect Rust/Cargo; build the workspace Tauri binary explicitly.
override_dh_auto_build:
	# Build frontend assets
	cd web_kbot && npm ci && npm run build
	# Build Rust binaries
	$(CARGO) build --release --locked 
	@if dpkg --compare-versions "$(GIO_VERSION)" lt "$(GIO_SWITCH_VERSION)"; then \
		echo "gio-2.0 $(GIO_VERSION) < $(GIO_SWITCH_VERSION), build tauri_v10sp1"; \
		$(CARGO) build --release --locked --manifest-path apps/tauri_v10sp1/Cargo.toml -p kylinbot-desktop-v10sp1; \
	else \
		echo "gio-2.0 $(GIO_VERSION) >= $(GIO_SWITCH_VERSION), build tauri_v11"; \
		$(CARGO) build --release --locked --manifest-path apps/tauri_v11/Cargo.toml -p kylinbot-desktop-v11; \
	fi

override_dh_auto_install:
	@if dpkg --compare-versions "$(GIO_VERSION)" lt "$(GIO_SWITCH_VERSION)"; then \
		install -D -m 0755 apps/tauri_v10sp1/target/release/kylinbot-desktop-v10sp1 \
			debian/kylin-bot/opt/system/bin/kylinbot-desktop; \
	else \
		install -D -m 0755 apps/tauri_v11/target/release/kylinbot-desktop-v11 \
			debian/kylin-bot/opt/system/bin/kylinbot-desktop; \
	fi
	install -D -m 0755 target/release/zeroclaw \
		debian/kylin-bot/opt/system/bin/kylinbot
	install -d debian/kylin-bot/usr/share/zeroclawlabs/web/dist
	cp -a web_kbot/dist/. debian/kylin-bot/usr/share/zeroclawlabs/web/dist/
	install -D -m 0644 debian/kylin-bot.desktop \
		debian/kylin-bot/opt/system/resource/applications/kylinbot-desktop.desktop
	@if [ -f apps/tauri/icons/256x256.png ]; then \
		install -D -m 0644 apps/tauri/icons/256x256.png \
			debian/kylin-bot/opt/system/resource/icons/hicolor/256x256x/apps/kylinbot-desktop.png; \
	else \
		install -D -m 0644 apps/tauri/icons/128x128.png \
			debian/kylin-bot/opt/system/resource/icons/hicolor/256x256x/apps/kylinbot-desktop.png; \
	fi
	install -D -m 0644 apps/tauri/icons/128x128.png \
		debian/kylin-bot/opt/system/resource/icons/hicolor/128x128/apps/kylinbot-desktop.png
	@if [ -f apps/tauri/icons/64x64.png ]; then \
		install -D -m 0644 apps/tauri/icons/64x64.png \
			debian/kylin-bot/opt/system/resource/icons/hicolor/64x64/apps/kylinbot-desktop.png; \
	else \
		install -D -m 0644 apps/tauri/icons/32x32.png \
			debian/kylin-bot/opt/system/resource/icons/hicolor/64x64/apps/kylinbot-desktop.png; \
	fi
	install -D -m 0644 apps/tauri/icons/32x32.png \
		debian/kylin-bot/opt/system/resource/icons/hicolor/32x32/apps/kylinbot-desktop.png

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

override_dh_auto_clean:
	dh_auto_clean
	-$(CARGO) clean

override_dh_shlibdeps:
	@echo "skip dh_shlibdeps intentionally"
