Eric Huss 80ffb1de1c Fix --quiet being used with nested subcommands.
This fixes an issue where `--quiet` doesn't work with commands that have
subcommands. This is because `config_configure` only looks at the global
and top-level subcommand, and not deeper subcommands. The issue was that
`--quiet` was not defined as a global flag. This was changed in
https://github.com/rust-lang/cargo/pull/6358 in order to give a better
help message for `cargo test --quiet`. I don't remember if clap just
didn't support overriding at the time, or if we just didn't know how it
worked. Anyways, it seems to work to override it now, so I think it
should be fine to mark it as global.

This should bring in `--quiet` more in-line with how `--verbose` works.
This means that `--quiet` is now accepted with `cargo report`,
`cargo help`, and `cargo config`.

This also fixes `--quiet` with `cargo clean gc`.

This should also help with supporting `--quiet` with the new `cargo
owner` subcommands being added in
https://github.com/rust-lang/cargo/pull/11879.

Fixes #12957
2023-11-12 11:17:43 -08:00

125 lines
3.3 KiB
Plaintext

Add dependencies to a Cargo.toml manifest file
Usage: cargo add [OPTIONS] <DEP>[@<VERSION>] ...
cargo add [OPTIONS] --path <PATH> ...
cargo add [OPTIONS] --git <URL> ...
Arguments:
[DEP_ID]...
Reference to a package to add as a dependency
You can reference a package by:
- `<name>`, like `cargo add serde` (latest version will be used)
- `<name>@<version-req>`, like `cargo add serde@1` or `cargo add serde@=1.0.38`
Options:
--no-default-features
Disable the default features
--default-features
Re-enable the default features
-F, --features <FEATURES>
Space or comma separated list of features to activate
--optional
Mark the dependency as optional
The package name will be exposed as feature of your crate.
--no-optional
Mark the dependency as required
The package will be removed from your features.
--rename <NAME>
Rename the dependency
Example uses:
- Depending on multiple versions of a crate
- Depend on crates with the same name from different registries
--ignore-rust-version
Ignore `rust-version` specification in packages (unstable)
-n, --dry-run
Don't actually write the manifest
-v, --verbose...
Use verbose output (-vv very verbose/build.rs output)
-q, --quiet
Do not print cargo log messages
--color <WHEN>
Coloring: auto, always, never
--config <KEY=VALUE>
Override a configuration value
-Z <FLAG>
Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details
-h, --help
Print help (see a summary with '-h')
Manifest Options:
--manifest-path <PATH>
Path to Cargo.toml
--frozen
Require Cargo.lock and cache are up to date
--locked
Require Cargo.lock is up to date
--offline
Run without accessing the network
Package Selection:
-p, --package [<SPEC>]
Package to modify
Source:
--path <PATH>
Filesystem path to local crate to add
--git <URI>
Git repository location
Without any other information, cargo will use latest commit on the main branch.
--branch <BRANCH>
Git branch to download the crate from
--tag <TAG>
Git tag to download the crate from
--rev <REV>
Git reference to download the crate from
This is the catch all, handling hashes to named references in remote repositories.
--registry <NAME>
Package registry for this dependency
Section:
--dev
Add as development dependency
Dev-dependencies are not used when compiling a package for building, but are used for
compiling tests, examples, and benchmarks.
These dependencies are not propagated to other packages which depend on this package.
--build
Add as build dependency
Build-dependencies are the only dependencies available for use by build scripts
(`build.rs` files).
--target <TARGET>
Add as dependency to the given target platform
Run `cargo help add` for more detailed information.