.PHONY: test test-time test-chrono test-wasm test-all fmt lint doc check

# 默认运行所有测试和检查
test: check test-all

# 格式化代码
fmt:
	cargo fmt --all

# 运行 clippy 检查
lint:
	cargo clippy --all-targets --all-features -- -D warnings

# 生成文档
doc:
	cargo doc --all-features --no-deps

# 运行基础的格式和静态检查
check: fmt lint doc

# 测试默认的 time 后端 (开启所有语言)
test-time:
	cargo test --features all-languages

# 测试 chrono 后端 (关闭默认的 time-backend，开启 chrono-backend 和所有语言)
test-chrono:
	cargo test --no-default-features --features "chrono-backend,all-languages"

# 测试 wasm 后端
test-wasm:
	CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER=wasm-bindgen-test-runner cargo test --lib --tests --target wasm32-unknown-unknown --features wasm

# 运行所有组合的测试
test-all:
	@echo "=========================================="
	@echo "🏃 Running tests with TIME backend..."
	@echo "=========================================="
	@cargo test --features all-languages
	@echo "\n=========================================="
	@echo "🏃 Running tests with CHRONO backend..."
	@echo "=========================================="
	@cargo test --no-default-features --features "chrono-backend,all-languages"
	@echo "\n=========================================="
	@echo "🏃 Running WASM tests..."
	@echo "=========================================="
	@CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER=wasm-bindgen-test-runner cargo test --lib --tests --target wasm32-unknown-unknown --features wasm
	@echo "\n✅ All backend and WASM tests passed successfully!"
