# Makefile
RUST_DIR := rust
WASM_OUT := resvg.wasm

.PHONY: wasm
wasm:
	cd $(RUST_DIR) && cargo build --target wasm32-wasip1 --release
	wasm-opt -O3 -o $(WASM_OUT) $(RUST_DIR)/target/wasm32-wasip1/release/resvg_wasm.wasm
	@echo "built $(WASM_OUT)"

# source of full DejaVu ttfs; override on the command line, e.g.
#   make fonts FONT_SRC=/path/to/dejavu PYFTSUBSET=/path/to/pyftsubset
FONT_SRC ?= $(HOME)/.local/share/dejavu
PYFTSUBSET ?= pyftsubset
SUBSET_RANGES := U+0000-00FF,U+0100-017F,U+0370-03FF,U+0400-04FF,U+2000-206F,U+2190-21FF,U+2200-22FF

.PHONY: fonts
fonts:
	@command -v $(PYFTSUBSET) >/dev/null || { echo "need fonttools: pip install fonttools"; exit 1; }
	for f in DejaVuSans DejaVuSans-Bold DejaVuSans-Oblique DejaVuSans-BoldOblique; do \
	  $(PYFTSUBSET) $(FONT_SRC)/$$f.ttf --unicodes=$(SUBSET_RANGES) \
	    --output-file=$(RUST_DIR)/fonts/$$f.ttf ; \
	done
	@echo "subsetted fonts -> $(RUST_DIR)/fonts/"

.PHONY: wasm-docker
wasm-docker:
	docker build -t go-resvg-build .
	docker run --rm -v "$(PWD):/src" go-resvg-build
	@echo "rebuilt resvg.wasm via pinned toolchain"
