.PHONY: help test coverage clean lint fmt check all
help:
@echo 'Usage: make [target]'
@echo ''
@echo 'Available targets:'
@awk 'BEGIN {FS = ":.*##"; printf "\n"} /^[a-zA-Z_-]+:.*?##/ { printf " %-15s %s\n", $$1, $$2 }' $(MAKEFILE_LIST)
test:
cargo test --all-features --workspace
coverage:
cargo llvm-cov --all-features --fail-under-lines 80 --html --open
clean:
cargo clean
lint:
cargo clippy --all-targets --all-features -- -D warnings
fmt:
cargo fmt --all
check:
cargo fmt --all -- --check
bench:
cargo bench
doc:
cargo doc --all-features --no-deps --open
mdbook:
mdbook build docs
install-tools:
cargo install cargo-llvm-cov
cargo install cargo-watch
cargo install cargo-edit
install-dev-tools:
@echo "Installing development tools from Cargo.toml dev-dependencies..."
cargo install --list | grep -q "mdbook" || cargo install mdbook --locked
cargo install --list | grep -q "mdbook-mermaid" || cargo install mdbook-mermaid --locked
cargo install --list | grep -q "mdbook-admonish" || cargo install mdbook-admonish --locked
cargo install --list | grep -q "mdbook-linkcheck" || cargo install mdbook-linkcheck --locked
cargo install --list | grep -q "mdbook-toc" || cargo install mdbook-toc --locked
cargo install --list | grep -q "cargo-watch" || cargo install cargo-watch --locked
cargo install --list | grep -q "cargo-edit" || cargo install cargo-edit --locked
cargo install --list | grep -q "cargo-llvm-cov" || cargo install cargo-llvm-cov --locked
@echo "Development tools installation completed!"
watch:
cargo watch -x test
all: fmt lint test coverage
docs-all: doc mdbook