#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS=hardening=+all

include /usr/share/dpkg/default.mk

# Work around asserts being enabled in all builds
# https://github.com/tree-sitter/tree-sitter/issues/4960
ifeq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
  CPPFLAGS += -DNDEBUG
endif

CFLAGS += $(CPPFLAGS)

%:
	dh $@

override_dh_auto_build:
	dh_auto_build -- PREFIX=/usr LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)
	dh_auto_build --buildsystem=rust

# tree-sitter-cli's tests require downloading fixtures at build time, so we can't run those.
# xtask is an internal crate used for release automation
override_dh_auto_test:
	dh_auto_test --buildsystem=rust -- --tests --workspace --exclude tree-sitter-cli --exclude xtask

override_dh_auto_install:
	dh_auto_install -- PREFIX=/usr LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)
	dh_auto_install --buildsystem=rust

define crate_ver =
$(shell perl -n -E 'if (/^version\s*=\s*"([\d.]+)["~]/) {say "$$1";}' lib/language/Cargo.toml)
endef

override_dh_gencontrol:
	dh_gencontrol -p librust-tree-sitter-language-dev -- -v$(crate_ver)+$(DEB_VERSION_UPSTREAM_REVISION)
	dh_gencontrol --remaining-packages
