You can pass flags through Cargo by several different means:
cargo rustc
, which only affects your crate and not its dependencies.- The
RUSTFLAGS
environment variable, which affects dependencies as well. - Some flags have a proper Cargo option, e.g.,
-C lto
and-C panic=abort
can be specified in theCargo.toml
file. - Add flags in
.cargo/config
using one of therustflags=
keys.
However, in your specific case of configuring lints, you don’t need to use compiler flags; you can also enable and disable lints directly in the source code using attributes. This may in fact be a better option as it’s more robust, more targeted, and doesn’t require you to alter your build system setup:
#![deny(some_lint)] // deny lint in this module and its children
#[allow(another_lint)] // allow lint in this function
fn foo() {
...
}
See also: