diff --git a/src/bin/cargo/cli.rs b/src/bin/cargo/cli.rs index 89f27f1019a..19e40d588e8 100644 --- a/src/bin/cargo/cli.rs +++ b/src/bin/cargo/cli.rs @@ -438,6 +438,7 @@ Some common cargo commands are (see all commands with --list): doc, d Build this package's and its dependencies' documentation new Create a new cargo package init Create a new cargo package in an existing directory + add Add dependencies to a manifest file run, r Run a binary or example of the local package test, t Run the tests bench Run the benchmarks diff --git a/src/doc/man/cargo-add.md b/src/doc/man/cargo-add.md new file mode 100644 index 00000000000..9f92d7508a2 --- /dev/null +++ b/src/doc/man/cargo-add.md @@ -0,0 +1,157 @@ +# cargo-add(1) +{{*set actionverb="Add"}} +{{*set nouns="adds"}} + +## NAME + +cargo-add - Add dependencies to a Cargo.toml manifest file + +## SYNOPSIS + +`cargo add` [_options_] _crate_...\ +`cargo add` [_options_] `--path` _path_\ +`cargo add` [_options_] `--git` _url_ [_crate_...]\ + + +## DESCRIPTION + +This command can add or modify dependencies. + +The source for the dependency can be specified with: + +* _crate_`@`_version_: Fetch from a registry with a version constraint of "_version_" +* `--path` _path_: Fetch from the specified _path_ +* `--git` _url_: Pull from a git repo at _url_ + +If no source is specified, then a best effort will be made to select one, including: + +* Existing dependencies in other tables (like `dev-dependencies`) +* Workspace members +* Latest release in the registry + +When you add a package that is already present, the existing entry will be updated with the flags specified. + +## OPTIONS + +### Source options + +{{#options}} + +{{#option "`--git` _url_" }} +[Git URL to add the specified crate from](../reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories). +{{/option}} + +{{#option "`--branch` _branch_" }} +Branch to use when adding from git. +{{/option}} + +{{#option "`--tag` _tag_" }} +Tag to use when adding from git. +{{/option}} + +{{#option "`--rev` _sha_" }} +Specific commit to use when adding from git. +{{/option}} + +{{#option "`--path` _path_" }} +[Filesystem path](../reference/specifying-dependencies.html#specifying-path-dependencies) to local crate to add. +{{/option}} + +{{> options-registry }} + +{{/options}} + +### Section options + +{{#options}} + +{{#option "`--dev`" }} +Add as a [development dependency](../reference/specifying-dependencies.html#development-dependencies). +{{/option}} + +{{#option "`--build`" }} +Add as a [build dependency](../reference/specifying-dependencies.html#build-dependencies). +{{/option}} + +{{#option "`--target` _target_" }} +Add as a dependency to the [given target platform](../reference/specifying-dependencies.html#platform-specific-dependencies). +{{/option}} + +{{/options}} + + + + +### Dependency options + +{{#options}} + +{{#option "`--rename` _name_" }} +[Rename](../reference/specifying-dependencies.html#renaming-dependencies-in-cargotoml) the dependency. +{{/option}} + +{{#option "`--optional`" }} +Mark the dependency as [optional](../reference/features.html#optional-dependencies). +{{/option}} + +{{#option "`--no-optional`" }} +Mark the dependency as [required](../reference/features.html#optional-dependencies). +{{/option}} + +{{#option "`--no-default-features`" }} +Disable the [default features](../reference/features.html#dependency-features). +{{/option}} + +{{#option "`--default-features`" }} +Re-enable the [default features](../reference/features.html#dependency-features). +{{/option}} + +{{#option "`--features` _features_" }} +Space or comma separated list of [features to +activate](../reference/features.html#dependency-features). When adding multiple +crates, the features for a specific crate may be enabled with +`package-name/feature-name` syntax. This flag may be specified multiple times, +which enables all specified features. +{{/option}} + +{{/options}} + + +### Display Options + +{{#options}} +{{> options-display }} +{{/options}} + +### Manifest Options + +{{#options}} +{{> options-manifest-path }} +{{/options}} + +{{> section-options-common }} + +{{> section-environment }} + +{{> section-exit-status }} + +## EXAMPLES + +1. Add `regex` as a dependency + + cargo add regex + +2. Add `trybuild` as a dev-dependency + + cargo add --dev trybuild + +3. Add an older version of `nom` as a dependency + + cargo add nom@5 + +4. Add support for serializing data structures to json with `derive`s + + cargo add serde serde_json -F serde/derive + +## SEE ALSO +{{man "cargo" 1}} diff --git a/src/doc/man/generated_txt/cargo-add.txt b/src/doc/man/generated_txt/cargo-add.txt new file mode 100644 index 00000000000..e7abc000cf0 --- /dev/null +++ b/src/doc/man/generated_txt/cargo-add.txt @@ -0,0 +1,180 @@ +CARGO-ADD(1) + +NAME + cargo-add - Add dependencies to a Cargo.toml manifest file + +SYNOPSIS + cargo add [options] crate... + cargo add [options] --path path + cargo add [options] --git url [crate...] + +DESCRIPTION + This command can add or modify dependencies. + + The source for the dependency can be specified with: + + o crate@version: Fetch from a registry with a version constraint of + "version" + + o --path path: Fetch from the specified path + + o --git url: Pull from a git repo at url + + If no source is specified, then a best effort will be made to select + one, including: + + o Existing dependencies in other tables (like dev-dependencies) + + o Workspace members + + o Latest release in the registry + + When you add a package that is already present, the existing entry will + be updated with the flags specified. + +OPTIONS + Source options + --git url + Git URL to add the specified crate from + . + + --branch branch + Branch to use when adding from git. + + --tag tag + Tag to use when adding from git. + + --rev sha + Specific commit to use when adding from git. + + --path path + Filesystem path + + to local crate to add. + + --registry registry + Name of the registry to use. Registry names are defined in Cargo + config files + . If not + specified, the default registry is used, which is defined by the + registry.default config key which defaults to crates-io. + + Section options + --dev + Add as a development dependency + . + + --build + Add as a build dependency + . + + --target target + Add as a dependency to the given target platform + . + + + + Dependency options + --rename name + Rename + + the dependency. + + --optional + Mark the dependency as optional + . + + --no-optional + Mark the dependency as required + . + + --no-default-features + Disable the default features + . + + --default-features + Re-enable the default features + . + + --features features + Space or comma separated list of features to activate + . + When adding multiple crates, the features for a specific crate may + be enabled with package-name/feature-name syntax. This flag may be + specified multiple times, which enables all specified features. + + Display Options + -v, --verbose + Use verbose output. May be specified twice for "very verbose" output + which includes extra output such as dependency warnings and build + script output. May also be specified with the term.verbose config + value . + + -q, --quiet + Do not print cargo log messages. May also be specified with the + term.quiet config value + . + + --color when + Control when colored output is used. Valid values: + + o auto (default): Automatically detect if color support is + available on the terminal. + + o always: Always display colors. + + o never: Never display colors. + + May also be specified with the term.color config value + . + + Manifest Options + --manifest-path path + Path to the Cargo.toml file. By default, Cargo searches for the + Cargo.toml file in the current directory or any parent directory. + + Common Options + +toolchain + If Cargo has been installed with rustup, and the first argument to + cargo begins with +, it will be interpreted as a rustup toolchain + name (such as +stable or +nightly). See the rustup documentation + for more + information about how toolchain overrides work. + + -h, --help + Prints help information. + + -Z flag + Unstable (nightly-only) flags to Cargo. Run cargo -Z help for + details. + +ENVIRONMENT + See the reference + + for details on environment variables that Cargo reads. + +EXIT STATUS + o 0: Cargo succeeded. + + o 101: Cargo failed to complete. + +EXAMPLES + 1. Add regex as a dependency + + cargo add regex + + 2. Add trybuild as a dev-dependency + + cargo add --dev trybuild + + 3. Add an older version of nom as a dependency + + cargo add nom@5 + + 4. Add support for serializing data structures to json with derives + + cargo add serde serde_json -F serde/derive + +SEE ALSO + cargo(1) + diff --git a/src/doc/src/SUMMARY.md b/src/doc/src/SUMMARY.md index 198567c3223..453d1121da8 100644 --- a/src/doc/src/SUMMARY.md +++ b/src/doc/src/SUMMARY.md @@ -61,6 +61,7 @@ * [cargo test](commands/cargo-test.md) * [cargo report](commands/cargo-report.md) * [Manifest Commands](commands/manifest-commands.md) + * [cargo add](commands/cargo-add.md) * [cargo generate-lockfile](commands/cargo-generate-lockfile.md) * [cargo locate-project](commands/cargo-locate-project.md) * [cargo metadata](commands/cargo-metadata.md) diff --git a/src/doc/src/commands/cargo-add.md b/src/doc/src/commands/cargo-add.md new file mode 100644 index 00000000000..e7f7e1d5164 --- /dev/null +++ b/src/doc/src/commands/cargo-add.md @@ -0,0 +1,223 @@ +# cargo-add(1) + + + +## NAME + +cargo-add - Add dependencies to a Cargo.toml manifest file + +## SYNOPSIS + +`cargo add` [_options_] _crate_...\ +`cargo add` [_options_] `--path` _path_\ +`cargo add` [_options_] `--git` _url_ [_crate_...]\ + + +## DESCRIPTION + +This command can add or modify dependencies. + +The source for the dependency can be specified with: + +* _crate_`@`_version_: Fetch from a registry with a version constraint of "_version_" +* `--path` _path_: Fetch from the specified _path_ +* `--git` _url_: Pull from a git repo at _url_ + +If no source is specified, then a best effort will be made to select one, including: + +* Existing dependencies in other tables (like `dev-dependencies`) +* Workspace members +* Latest release in the registry + +When you add a package that is already present, the existing entry will be updated with the flags specified. + +## OPTIONS + +### Source options + +
+ +
--git url
+
Git URL to add the specified crate from.
+ + +
--branch branch
+
Branch to use when adding from git.
+ + +
--tag tag
+
Tag to use when adding from git.
+ + +
--rev sha
+
Specific commit to use when adding from git.
+ + +
--path path
+
Filesystem path to local crate to add.
+ + +
--registry registry
+
Name of the registry to use. Registry names are defined in Cargo config +files. If not specified, the default registry is used, +which is defined by the registry.default config key which defaults to +crates-io.
+ + + +
+ +### Section options + +
+ +
--dev
+
Add as a development dependency.
+ + +
--build
+
Add as a build dependency.
+ + +
--target target
+
Add as a dependency to the given target platform.
+ + +
+ + + + +### Dependency options + +
+ +
--rename name
+
Rename the dependency.
+ + +
--optional
+
Mark the dependency as optional.
+ + +
--no-optional
+
Mark the dependency as required.
+ + +
--no-default-features
+
Disable the default features.
+ + +
--default-features
+
Re-enable the default features.
+ + +
--features features
+
Space or comma separated list of features to +activate. When adding multiple +crates, the features for a specific crate may be enabled with +package-name/feature-name syntax. This flag may be specified multiple times, +which enables all specified features.
+ + +
+ + +### Display Options + +
+
-v
+
--verbose
+
Use verbose output. May be specified twice for "very verbose" output which +includes extra output such as dependency warnings and build script output. +May also be specified with the term.verbose +config value.
+ + +
-q
+
--quiet
+
Do not print cargo log messages. +May also be specified with the term.quiet +config value.
+ + +
--color when
+
Control when colored output is used. Valid values:

+
    +
  • auto (default): Automatically detect if color support is available on the +terminal.
  • +
  • always: Always display colors.
  • +
  • never: Never display colors.
  • +
+

May also be specified with the term.color +config value.

+ + +
+ +### Manifest Options + +
+
--manifest-path path
+
Path to the Cargo.toml file. By default, Cargo searches for the +Cargo.toml file in the current directory or any parent directory.
+ + +
+ +### Common Options + +
+ +
+toolchain
+
If Cargo has been installed with rustup, and the first argument to cargo +begins with +, it will be interpreted as a rustup toolchain name (such +as +stable or +nightly). +See the rustup documentation +for more information about how toolchain overrides work.
+ + +
-h
+
--help
+
Prints help information.
+ + +
-Z flag
+
Unstable (nightly-only) flags to Cargo. Run cargo -Z help for details.
+ + +
+ + +## ENVIRONMENT + +See [the reference](../reference/environment-variables.html) for +details on environment variables that Cargo reads. + + +## EXIT STATUS + +* `0`: Cargo succeeded. +* `101`: Cargo failed to complete. + + +## EXAMPLES + +1. Add `regex` as a dependency + + cargo add regex + +2. Add `trybuild` as a dev-dependency + + cargo add --dev trybuild + +3. Add an older version of `nom` as a dependency + + cargo add nom@5 + +4. Add support for serializing data structures to json with `derive`s + + cargo add serde serde_json -F serde/derive + +## SEE ALSO +[cargo(1)](cargo.html) diff --git a/src/doc/src/commands/manifest-commands.md b/src/doc/src/commands/manifest-commands.md index e9b5c708d40..2f4017a71ca 100644 --- a/src/doc/src/commands/manifest-commands.md +++ b/src/doc/src/commands/manifest-commands.md @@ -1,4 +1,5 @@ # Manifest Commands +* [cargo add](cargo-add.md) * [cargo generate-lockfile](cargo-generate-lockfile.md) * [cargo locate-project](cargo-locate-project.md) * [cargo metadata](cargo-metadata.md) diff --git a/src/etc/man/cargo-add.1 b/src/etc/man/cargo-add.1 new file mode 100644 index 00000000000..f7803405346 --- /dev/null +++ b/src/etc/man/cargo-add.1 @@ -0,0 +1,254 @@ +'\" t +.TH "CARGO\-ADD" "1" +.nh +.ad l +.ss \n[.ss] 0 +.SH "NAME" +cargo\-add \- Add dependencies to a Cargo.toml manifest file +.SH "SYNOPSIS" +\fBcargo add\fR [\fIoptions\fR] \fIcrate\fR\&... +.br +\fBcargo add\fR [\fIoptions\fR] \fB\-\-path\fR \fIpath\fR +.br +\fBcargo add\fR [\fIoptions\fR] \fB\-\-git\fR \fIurl\fR [\fIcrate\fR\&...] +.SH "DESCRIPTION" +This command can add or modify dependencies. +.sp +The source for the dependency can be specified with: +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fIcrate\fR\fB@\fR\fIversion\fR: Fetch from a registry with a version constraint of "\fIversion\fR" +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fB\-\-path\fR \fIpath\fR: Fetch from the specified \fIpath\fR +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fB\-\-git\fR \fIurl\fR: Pull from a git repo at \fIurl\fR +.RE +.sp +If no source is specified, then a best effort will be made to select one, including: +.sp +.RS 4 +\h'-04'\(bu\h'+02'Existing dependencies in other tables (like \fBdev\-dependencies\fR) +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'Workspace members +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'Latest release in the registry +.RE +.sp +When you add a package that is already present, the existing entry will be updated with the flags specified. +.SH "OPTIONS" +.SS "Source options" +.sp +\fB\-\-git\fR \fIurl\fR +.RS 4 +\fIGit URL to add the specified crate from\fR \&. +.RE +.sp +\fB\-\-branch\fR \fIbranch\fR +.RS 4 +Branch to use when adding from git. +.RE +.sp +\fB\-\-tag\fR \fItag\fR +.RS 4 +Tag to use when adding from git. +.RE +.sp +\fB\-\-rev\fR \fIsha\fR +.RS 4 +Specific commit to use when adding from git. +.RE +.sp +\fB\-\-path\fR \fIpath\fR +.RS 4 +\fIFilesystem path\fR to local crate to add. +.RE +.sp +\fB\-\-registry\fR \fIregistry\fR +.RS 4 +Name of the registry to use. Registry names are defined in \fICargo config +files\fR \&. If not specified, the default registry is used, +which is defined by the \fBregistry.default\fR config key which defaults to +\fBcrates\-io\fR\&. +.RE +.SS "Section options" +.sp +\fB\-\-dev\fR +.RS 4 +Add as a \fIdevelopment dependency\fR \&. +.RE +.sp +\fB\-\-build\fR +.RS 4 +Add as a \fIbuild dependency\fR \&. +.RE +.sp +\fB\-\-target\fR \fItarget\fR +.RS 4 +Add as a dependency to the \fIgiven target platform\fR \&. +.RE + +.SS "Dependency options" +.sp +\fB\-\-rename\fR \fIname\fR +.RS 4 +\fIRename\fR the dependency. +.RE +.sp +\fB\-\-optional\fR +.RS 4 +Mark the dependency as \fIoptional\fR \&. +.RE +.sp +\fB\-\-no\-optional\fR +.RS 4 +Mark the dependency as \fIrequired\fR \&. +.RE +.sp +\fB\-\-no\-default\-features\fR +.RS 4 +Disable the \fIdefault features\fR \&. +.RE +.sp +\fB\-\-default\-features\fR +.RS 4 +Re\-enable the \fIdefault features\fR \&. +.RE +.sp +\fB\-\-features\fR \fIfeatures\fR +.RS 4 +Space or comma separated list of \fIfeatures to +activate\fR \&. When adding multiple +crates, the features for a specific crate may be enabled with +\fBpackage\-name/feature\-name\fR syntax. This flag may be specified multiple times, +which enables all specified features. +.RE +.SS "Display Options" +.sp +\fB\-v\fR, +\fB\-\-verbose\fR +.RS 4 +Use verbose output. May be specified twice for "very verbose" output which +includes extra output such as dependency warnings and build script output. +May also be specified with the \fBterm.verbose\fR +\fIconfig value\fR \&. +.RE +.sp +\fB\-q\fR, +\fB\-\-quiet\fR +.RS 4 +Do not print cargo log messages. +May also be specified with the \fBterm.quiet\fR +\fIconfig value\fR \&. +.RE +.sp +\fB\-\-color\fR \fIwhen\fR +.RS 4 +Control when colored output is used. Valid values: +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fBauto\fR (default): Automatically detect if color support is available on the +terminal. +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fBalways\fR: Always display colors. +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fBnever\fR: Never display colors. +.RE +.sp +May also be specified with the \fBterm.color\fR +\fIconfig value\fR \&. +.RE +.SS "Manifest Options" +.sp +\fB\-\-manifest\-path\fR \fIpath\fR +.RS 4 +Path to the \fBCargo.toml\fR file. By default, Cargo searches for the +\fBCargo.toml\fR file in the current directory or any parent directory. +.RE +.SS "Common Options" +.sp +\fB+\fR\fItoolchain\fR +.RS 4 +If Cargo has been installed with rustup, and the first argument to \fBcargo\fR +begins with \fB+\fR, it will be interpreted as a rustup toolchain name (such +as \fB+stable\fR or \fB+nightly\fR). +See the \fIrustup documentation\fR +for more information about how toolchain overrides work. +.RE +.sp +\fB\-h\fR, +\fB\-\-help\fR +.RS 4 +Prints help information. +.RE +.sp +\fB\-Z\fR \fIflag\fR +.RS 4 +Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fR for details. +.RE +.SH "ENVIRONMENT" +See \fIthe reference\fR for +details on environment variables that Cargo reads. +.SH "EXIT STATUS" +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fB0\fR: Cargo succeeded. +.RE +.sp +.RS 4 +\h'-04'\(bu\h'+02'\fB101\fR: Cargo failed to complete. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +\h'-04' 1.\h'+01'Add \fBregex\fR as a dependency +.sp +.RS 4 +.nf +cargo add regex +.fi +.RE +.RE +.sp +.RS 4 +\h'-04' 2.\h'+01'Add \fBtrybuild\fR as a dev\-dependency +.sp +.RS 4 +.nf +cargo add \-\-dev trybuild +.fi +.RE +.RE +.sp +.RS 4 +\h'-04' 3.\h'+01'Add an older version of \fBnom\fR as a dependency +.sp +.RS 4 +.nf +cargo add nom@5 +.fi +.RE +.RE +.sp +.RS 4 +\h'-04' 4.\h'+01'Add support for serializing data structures to json with \fBderive\fRs +.sp +.RS 4 +.nf +cargo add serde serde_json \-F serde/derive +.fi +.RE +.RE +.SH "SEE ALSO" +\fBcargo\fR(1)