#!/usr/bin/make -f

DESTDIR = $(CURDIR)/debian/marktext
APPDIR = $(DESTDIR)/usr/lib/marktext

%:
	dh $@

override_dh_auto_build:
	npm install --global --no-audit --no-fund pnpm@10.33.4
	pnpm install --frozen-lockfile
	pnpm rebuild-native
	pnpm run build:unpack
	pnpm --filter marktext exec electron-builder --linux dir --publish never

override_dh_auto_install:
	install -d $(APPDIR)/resources $(DESTDIR)/usr/bin
	cp -a dist/linux-unpacked/resources/. $(APPDIR)/resources/
	install -D -m 0644 packages/desktop/build/icons/256x256/marktext.png \
		$(DESTDIR)/usr/share/icons/hicolor/256x256/apps/marktext.png
	install -D -m 0644 debian/marktext.desktop \
		$(DESTDIR)/usr/share/applications/marktext.desktop
	printf '%s\n' \
		'#!/bin/sh' \
		'set -eu' \
		'unset ELECTRON_RUN_AS_NODE' \
		'export MT_RESDIR=/usr/lib/marktext/resources' \
		'export MT_PACKAGED=1' \
		'exec /usr/lib/electron-runtime-42/electron /usr/lib/marktext/resources/app.asar "$$@"' \
		> $(DESTDIR)/usr/bin/marktext
	chmod 0755 $(DESTDIR)/usr/bin/marktext

override_dh_auto_test:
	pnpm --filter marktext test:unit

override_dh_dwz:
	# Preserve upstream's prebuilt Node modules and helper byte-for-byte.

override_dh_strip:
	# These ELF files are app payload, not locally built Debian objects.

override_dh_makeshlibs:
	dh_makeshlibs --no-scripts

override_dh_shlibdeps:
	# Node-API symbols are supplied by Electron at load time. Runtime libraries
	# used by keytar/native-keymap are declared explicitly in debian/control.
