DOCCRATES = petgraph fixedbitset

# deps to delete the generated docs
RMDOCS =

FEATURES = unstable

VERSIONS = $(patsubst %,target/VERS/%,$(DOCCRATES))

docs: mkdocs mksvgs subst $(RMDOCS)

# https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html
$(VERSIONS): Cargo.toml
	mkdir -p $(@D)
	cargo pkgid $(@F) | sed -e "s/.*#\(\|.*:\)//" > "$@"

$(DOCCRATES): %: target/VERS/%
	# Put in the crate version into the docs
	find ./doc/$@ -name "*.html" -exec sed -i -e "s/<title>\(.*\) - Rust/<title>$@ $(shell cat $<) - \1 - Rust/g" {} \;

subst: $(DOCCRATES)

mkdocs: Cargo.toml
	cargo doc --features=$(FEATURES)
	rm -rf ./doc
	cp -r ./target/doc ./doc
	- cat ./custom.css >> doc/main.css

$(RMDOCS): mkdocs
	rm -r ./doc/$@
	sed -i "/searchIndex\['$@'\]/d" doc/search-index.js

mksvgs: mkdocs graph-example.dot
	dot -Tsvg < ./graph-example.dot > graph-example.svg
	mv graph-example.svg ./doc/petgraph/graph/


.PHONY: docs mkdocs mksvgs subst $(DOCCRATES) $(RMDOCS)