#!/usr/bin/make -f

# generate documentation unless nodoc requested
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
MANPAGES = debian/build/hx.1
endif

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
export DEB_CXXFLAGS_MAINT_APPEND  = -Wall -pedantic

# trust upstream optimization level unless explicitly disabled
ifeq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
export DEB_CFLAGS_MAINT_STRIP = -O2
export DEB_CXXFLAGS_MAINT_STRIP = -O2
# match additional tunings set in build profile "opt"
export RUSTFLAGS = -C lto -C codegen-units=1
endif

ABI_FILE = debian/hx-plugin-dev/usr/share/hx-plugin-dev/plugin-abi

# avoid network during build
export HELIX_DISABLE_AUTO_GRAMMAR_BUILD = 1

%:
	dh $@

execute_after_dh_auto_install: $(MANPAGES)
	mkdir --parents debian/build
	cp contrib/completion/hx.zsh debian/build/_hx
	mkdir --parents debian/hx-plugin-dev/usr/share/hx-plugin-dev
	find languages.toml runtime/queries -type f -exec sha256sum {} + \
		| perl -anle 'push@r,"$$F[1]\n$$F[0]\n";END{print sort@r}' \
		| sha256sum \
		| perl -nE 'say "hx-plugin-abi-$$1" if /^([0-9a-f]{16})/' \
		> $(ABI_FILE)

# build manpages
# set XDG_CACHE_HOME to make build reproducible (bug#1100016)
debian/build/hx.1: XDG_CACHE_HOME = /home/\$USER/.cache
debian/build/hx.1: debian/build/%.1: debian/hx/usr/bin/%
	mkdir --parents debian/build
	help2man --section 1 --no-info \
	 --name "efficient command-line modal text-editor" \
	 --output $@ $< \
	 || { $1 --help; false; }

override_dh_gencontrol:
	dh_gencontrol -phx -- -V'hx:PluginAbi=$(shell cat $(ABI_FILE))'
	dh_gencontrol --remaining-packages
