#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/upstream-tarball.mk
include /usr/share/cdbs/1/rules/utils.mk

pkg = $(DEB_SOURCE_PACKAGE)
pkg-mono = $(pkg)-mono
pkg-hinted = $(pkg)-hinted
pkg-unhinted = $(pkg)-unhinted
pkg-croscore = fonts-croscore
pkgs = $(pkg-hinted) $(pkg-unhinted)

DEB_UPSTREAM_URL = https://github.com/googlei18n/noto-fonts/archive
DEB_UPSTREAM_PACKAGE = NotoFonts-hinted
DEB_UPSTREAM_TARBALL_SRCDIR = noto-fonts-$(DEB_UPSTREAM_TARBALL_BASENAME)

DEB_UPSTREAM_TARBALL_SRCDIR += $(if \
 $(filter $(DEB_UPSTREAM_PACKAGE)-%,$(DEB_UPSTREAM_TARBALL_BASENAME)),\
  $(error set DEB_UPSTREAM_TARBALL_BASENAME to commit hash))

# Build-depend unversioned on debhelper
#  TODO: Drop when adopted in cdbs
CDBS_BUILD_DEPENDS_rules_debhelper_v9 = debhelper

DEB_INSTALL_DOCS_ALL += README.md FAQ.md

$(addprefix binary-fixup/,$(pkgs))::
	find debian/$(cdbs_curpkg)/usr/share/fonts/*/noto -type f -execdir chmod -x {} +

# extract metadata from fonts before copyright check
CDBS_BUILD_DEPENDS +=, libregexp-assemble-perl, libimage-exiftool-perl
CDBS_BUILD_DEPENDS +=, libfont-ttf-perl
local_inspection_regex = gif|jpg|png|ttf|ttc
DEB_COPYRIGHT_CHECK_IGNORE_REGEX = ^((.*/)?[^/]+\.($(local_inspection_regex))|debian/(changelog|copyright(|_hints|_newhints)))$$
debian/stamp-copyright-check: debian/stamp-extract-copyright
debian/stamp-extract-copyright:
	find * -type f -regextype posix-extended \
		-regex '.*\.($(local_inspection_regex))' \
		-print0 | perl -0 debian/license-miner
	touch $@
pre-build:: clean-extracted-copyright-during-build
clean-extracted-copyright-during-build: debian/stamp-copyright-check
	find -type f -name '*.metadata_dump' -delete
clean::
	find -type f -name '*.metadata_dump' -delete
	rm -f debian/stamp-extract-copyright

# resolve font facts and encode for control file (see deb-substvars(5) )
CDBS_BUILD_DEPENDS +=, lcdf-typetools
substvars-list-encode = perl -0 -F/\\n/ -ane 'print " * ", join("\$${Newline} * ",@F)'

# Generate fonts list
fonts-mono := $(wildcard hinted/NotoMono*.ttf)
fonts-hinted := $(filter-out $(fonts-mono),$(wildcard hinted/Noto*.ttf))
fonts-unhinted := $(wildcard unhinted/Noto*.ttf)
fonts-croscore := $(wildcard hinted/Arimo*.ttf hinted/Cousine*.ttf hinted/Tinos*.ttf)
fonts-nothinted = $(filter-out $(subst hinted,unhinted,$(fonts-hinted)),$(fonts-unhinted))

# Substvars magic
fonts-scriptcount := $(shell otfinfo -s $(fonts-unhinted) | perl -ne 's/^.*\t+//;s, ?(/|Default|<unknown|v\.2|\(.*\)).*,,;s,^([^/]+)/\1,$1,;/./ and print' | sort -u | grep -c .)
fonts-familylist := $(shell otfinfo -a $(fonts-hinted) | cut -d: -f2 | sort -u | $(substvars-list-encode))
fonts-nohintfamilylist := $(shell otfinfo -a $(fonts-nothinted) | cut -d: -f2 | sort -u | $(substvars-list-encode))

# Install fonts
DEB_DH_INSTALL_ARGS_$(pkg-mono) = $(fonts-mono) usr/share/fonts/truetype/noto/
DEB_DH_INSTALL_ARGS_$(pkg-hinted) = $(fonts-hinted) usr/share/fonts/truetype/noto/
DEB_DH_INSTALL_ARGS_$(pkg-unhinted) = $(fonts-nothinted) usr/share/fonts/truetype/noto/
DEB_DH_INSTALL_ARGS_$(pkg-croscore) = $(fonts-croscore) usr/share/fonts/truetype/croscore/

# install bug-* files into all binary packages
DEB_DH_BUGFILES_ARGS_ALL = --all

$(addprefix install/,$(pkg) $(pkgs))::
	echo 'fonts:scriptcount=$(fonts-scriptcount)' >> debian/$(cdbs_curpkg).substvars
install/$(pkg-hinted)::
	echo 'fonts:familylist=$(fonts-familylist)' >> debian/$(cdbs_curpkg).substvars
install/$(pkg-unhinted)::
	echo 'fonts:nohintfamilylist=$(fonts-nohintfamilylist)' >> debian/$(cdbs_curpkg).substvars
