| module( |
| name = "rules_rs_mutants", |
| version = "0.0.1", |
| bazel_compatibility = [">=7.7.0"], |
| ) |
| |
| bazel_dep(name = "rules_rs", version = "0.0.106") |
| bazel_dep(name = "bazel_skylib", version = "1.9.0") |
| bazel_dep(name = "hermetic_launcher", version = "0.0.8") |
| bazel_dep(name = "platforms", version = "1.1.0") |
| |
| # The aspect reuses rules_rust's own `rustc_compile` internals to reconstruct |
| # the command line, so it needs the same @rules_rust that rules_rs vends. |
| rules_rust = use_extension("@rules_rs//rs:rules_rust.bzl", "rules_rust") |
| use_repo(rules_rust, "rules_rust") |
| |
| crate = use_extension("@rules_rs//rs:extensions.bzl", "crate") |
| crate.from_cargo( |
| name = "rrsmut", |
| cargo_lock = "//mutants/private:Cargo.lock", |
| cargo_toml = "//mutants/private:Cargo.toml", |
| platform_triples = [ |
| "aarch64-apple-darwin", |
| "aarch64-pc-windows-gnullvm", |
| "aarch64-pc-windows-msvc", |
| "aarch64-unknown-linux-gnu", |
| "aarch64-unknown-linux-musl", |
| "x86_64-apple-darwin", |
| "x86_64-pc-windows-gnullvm", |
| "x86_64-pc-windows-msvc", |
| "x86_64-unknown-linux-gnu", |
| "x86_64-unknown-linux-musl", |
| ], |
| ) |
| use_repo(crate, "rrsmut") |
| |
| ############################ Development only ############################ |
| |
| # cargo-mutants itself is a dev dependency: consumers point |
| # `//mutants:cargo_mutants_binary` at a build from their own lockfile. |
| dev_crate = use_extension( |
| "@rules_rs//rs:extensions.bzl", |
| "crate", |
| dev_dependency = True, |
| ) |
| dev_crate.from_cargo( |
| name = "mutants", |
| cargo_lock = "//example:Cargo.lock", |
| cargo_toml = "//example:Cargo.toml", |
| platform_triples = [ |
| "aarch64-apple-darwin", |
| "aarch64-pc-windows-gnullvm", |
| "aarch64-unknown-linux-gnu", |
| "x86_64-apple-darwin", |
| "x86_64-pc-windows-gnullvm", |
| "x86_64-unknown-linux-gnu", |
| ], |
| ) |
| dev_crate.annotation( |
| crate = "cargo-mutants", |
| gen_binaries = ["cargo-mutants"], |
| repositories = ["mutants"], |
| ) |
| use_repo(dev_crate, "mutants") |
| |
| toolchains = use_extension( |
| "@rules_rs//rs/toolchains:module_extension.bzl", |
| "toolchains", |
| dev_dependency = True, |
| ) |
| toolchains.toolchain( |
| edition = "2024", |
| version = "1.96.1", |
| ) |
| use_repo(toolchains, "default_rust_toolchains") |
| |
| register_toolchains( |
| "@default_rust_toolchains//...", |
| dev_dependency = True, |
| ) |
| |
| bazel_dep(name = "buildifier_prebuilt", version = "8.5.1.1", dev_dependency = True) |
| |
| # A hermetic C++ toolchain, not the host one. The replay runs rustc outside of |
| # a Bazel action, so it never gets the `DEVELOPER_DIR`/`SDKROOT` that Bazel's |
| # XcodeLocalEnvProvider injects into apple_support's `cc_wrapper.sh` at |
| # execution time — under the host toolchain, linking a mutant on macOS fails |
| # with `Error: DEVELOPER_DIR not set`. The llvm toolchain links with a real |
| # binary and no such ambient state. |
| bazel_dep(name = "llvm", version = "0.8.18", dev_dependency = True) |
| |
| register_toolchains( |
| "@llvm//toolchain:all", |
| dev_dependency = True, |
| ) |