#!/usr/bin/make -f

include /usr/share/rustc/architecture.mk

RUSTUP_CA=Amazon_Root_CA_1.pem

ifeq ($(DEB_HOST_ARCH),amd64)
RUST_WIN_TARGET=x86_64-pc-windows-gnu
lib_name=nvdaControllerClient64.dll
endif
ifeq ($(DEB_HOST_ARCH),i386)
RUST_WIN_TARGET=i686-pc-windows-gnu
lib_name=nvdaControllerClient32.dll
endif

# known to work
RUST_VERSION=1.77

export CARGO_HOME=$(CURDIR)/tmp

%:
	dh $@

override_dh_auto_clean:
	-rm -fr $(CARGO_HOME) src/server/target src/client/target

override_dh_auto_build:
	@echo 'blhc: ignore-line-regexp: \ \ \ Compiling .*'

ifneq (,$(lib_name))
	# Don't do this at home, kids!
	curl --cacert /etc/ssl/certs/$(RUSTUP_CA) --proto '=https' --tlsv1.2 -f https://sh.rustup.rs > rustup.sh

	HOME=$(CARGO_HOME) sh rustup.sh -y --default-host $(DEB_HOST_RUST_TYPE) --profile minimal
	HOME=$(CARGO_HOME) $(CARGO_HOME)/bin/rustup install --profile minimal $(RUST_VERSION)
	HOME=$(CARGO_HOME) $(CARGO_HOME)/bin/rustup default $(RUST_VERSION)
	HOME=$(CARGO_HOME) $(CARGO_HOME)/bin/rustup uninstall stable

	HOME=$(CARGO_HOME) $(CARGO_HOME)/bin/rustup install --force-non-host --profile minimal $(RUST_VERSION)-$(RUST_WIN_TARGET)
	HOME=$(CARGO_HOME) $(CARGO_HOME)/bin/rustup target add $(RUST_WIN_TARGET)

	cd src/client && \
	HOME=$(CARGO_HOME) $(CARGO_HOME)/bin/cargo build -v --release --target $(RUST_WIN_TARGET)
	mv src/client/target/$(RUST_WIN_TARGET)/release/nvda2speechd.dll \
	   src/client/target/$(RUST_WIN_TARGET)/release/$(lib_name)
	chmod -x src/client/target/$(RUST_WIN_TARGET)/release/$(lib_name)
endif

	cd src/server && \
	HOME=$(CARGO_HOME) cargo build -v --release --target ${DEB_HOST_RUST_TYPE}

override_dh_fixperms:
	dh_fixperms -X.dll
