61 lines
2.2 KiB
Makefile
61 lines
2.2 KiB
Makefile
.PHONY: test test_py publish clippy lint fmt fmt_py fmt_rust
|
|
|
|
ALL_ADDITIVE_FEATURES = macros multiple-pymethods num-bigint num-complex hashbrown serde indexmap eyre anyhow
|
|
COVERAGE_PACKAGES = --package pyo3 --package pyo3-build-config --package pyo3-macros-backend --package pyo3-macros
|
|
|
|
list_all_additive_features:
|
|
@echo $(ALL_ADDITIVE_FEATURES)
|
|
|
|
test: lint test_py
|
|
cargo test
|
|
cargo test --features="abi3"
|
|
cargo test --features="$(ALL_ADDITIVE_FEATURES)"
|
|
cargo test --features="abi3 $(ALL_ADDITIVE_FEATURES)"
|
|
|
|
test_py:
|
|
@for example in examples/*/tox.ini; do echo "-- Running tox for $$example --"; tox -e py -c $$example || exit 1; echo ""; done
|
|
@for package in pytests/*/tox.ini; do echo "-- Running tox for $$package --"; tox -e py -c $$package || exit 1; echo ""; done
|
|
|
|
fmt_py:
|
|
black . --check
|
|
|
|
fmt_rust:
|
|
cargo fmt --all -- --check
|
|
for package in pytests/*/; do cargo fmt --manifest-path $$package/Cargo.toml -- --check || exit 1; done
|
|
|
|
fmt: fmt_rust fmt_py
|
|
@true
|
|
|
|
coverage:
|
|
# cargo llvm-cov clean --workspace
|
|
# cargo llvm-cov $(COVERAGE_PACKAGES) --no-report
|
|
# cargo llvm-cov $(COVERAGE_PACKAGES) --no-report --features abi3
|
|
# cargo llvm-cov $(COVERAGE_PACKAGES) --no-report --features $(ALL_ADDITIVE_FEATURES)
|
|
# cargo llvm-cov $(COVERAGE_PACKAGES) --no-report --features abi3 $(ALL_ADDITIVE_FEATURES)
|
|
bash -c "\
|
|
set -a\
|
|
source <(cargo llvm-cov show-env)\
|
|
export TOX_TESTENV_PASSENV=*\
|
|
make test_py\
|
|
"
|
|
cargo llvm-cov $(COVERAGE_PACKAGES) --no-run --summary-only
|
|
|
|
|
|
clippy:
|
|
cargo clippy --features="$(ALL_ADDITIVE_FEATURES)" --all-targets --workspace -- -Dwarnings
|
|
cargo clippy --features="abi3 $(ALL_ADDITIVE_FEATURES)" --all-targets --workspace -- -Dwarnings
|
|
for example in examples/*/; do cargo clippy --manifest-path $$example/Cargo.toml -- -Dwarnings || exit 1; done
|
|
for package in pytests/*/; do cargo clippy --manifest-path $$package/Cargo.toml -- -Dwarnings || exit 1; done
|
|
|
|
lint: fmt clippy
|
|
@true
|
|
|
|
publish: test
|
|
cargo publish --manifest-path pyo3-build-config/Cargo.toml
|
|
sleep 10
|
|
cargo publish --manifest-path pyo3-macros-backend/Cargo.toml
|
|
sleep 10 # wait for crates.io to update
|
|
cargo publish --manifest-path pyo3-macros/Cargo.toml
|
|
sleep 10 # wait for crates.io to update
|
|
cargo publish
|