STABLE_EXAMPLES = json
UNSTABLE_EXAMPLES = json rocket
UNSTABLE_FEATURES = inclusive_range
all: build test
build: build-stable \
build-unstable \
build-examples
test: test-stable \
test-unstable \
test-examples
build-stable:
@echo "building on stable"
@rustup run stable cargo build
build-examples: build-stable-examples build-unstable-examples
build-stable-examples: $(foreach x, $(STABLE_EXAMPLES), build-stable-example-$(x))
build-stable-example-%: $(CURDIR)/examples/stable/%
@echo "building stable example $*"
@cd $(CURDIR)/examples/stable/$*; rustup run stable cargo build
build-unstable-examples: $(foreach x, $(UNSTABLE_EXAMPLES), build-unstable-example-$(x))
build-unstable:
@echo "building on nightly"
@rustup run nightly cargo build
@echo "building on nightly with unstable features: $(UNSTABLE_FEATURES)"
@rustup run nightly cargo build --features $(UNSTABLE_FEATURES)
build-unstable-example-%: $(CURDIR)/examples/unstable/%
@echo "building unstable example $*"
@cd $(CURDIR)/examples/unstable/$*; rustup run nightly cargo build
test-stable:
@echo "testing stable"
@rustup run stable cargo test
test-examples: test-stable-examples test-unstable-examples
test-stable-examples: $(foreach x, $(STABLE_EXAMPLES), test-stable-example-$(x))
test-stable-example-%: $(CURDIR)/examples/stable/%
@echo "testing stable example $*"
@cd $(CURDIR)/examples/stable/$*; rustup run stable cargo test
test-unstable-examples: $(foreach x, $(UNSTABLE_EXAMPLES), test-unstable-example-$(x))
test-unstable:
@echo "testing on nightly"
@rustup run nightly cargo test
@echo "testing on nightly with unstable features: $(UNSTABLE_FEATURES)"
@rustup run nightly cargo test --features $(UNSTABLE_FEATURES)
test-unstable-example-%: $(CURDIR)/examples/unstable/%
@echo "testing unstable example $*"
@cd $(CURDIR)/examples/unstable/$*; rustup run nightly cargo test