summaryrefslogtreecommitdiffstats
path: root/src/doc/man/cargo-rustc.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/doc/man/cargo-rustc.md145
1 files changed, 145 insertions, 0 deletions
diff --git a/src/doc/man/cargo-rustc.md b/src/doc/man/cargo-rustc.md
new file mode 100644
index 0000000..f3b3723
--- /dev/null
+++ b/src/doc/man/cargo-rustc.md
@@ -0,0 +1,145 @@
+# cargo-rustc(1)
+{{*set actionverb="Build"}}
+{{*set multitarget=true}}
+
+## NAME
+
+cargo-rustc --- Compile the current package, and pass extra options to the compiler
+
+## SYNOPSIS
+
+`cargo rustc` [_options_] [`--` _args_]
+
+## DESCRIPTION
+
+The specified target for the current package (or package specified by `-p` if
+provided) will be compiled along with all of its dependencies. The specified
+_args_ will all be passed to the final compiler invocation, not any of the
+dependencies. Note that the compiler will still unconditionally receive
+arguments such as `-L`, `--extern`, and `--crate-type`, and the specified
+_args_ will simply be added to the compiler invocation.
+
+See <https://doc.rust-lang.org/rustc/index.html> for documentation on rustc
+flags.
+
+{{> description-one-target }}
+To pass flags to all compiler processes spawned by Cargo, use the `RUSTFLAGS`
+[environment variable](../reference/environment-variables.html) or the
+`build.rustflags` [config value](../reference/config.html).
+
+## OPTIONS
+
+{{> section-options-package }}
+
+### Target Selection
+
+When no target selection options are given, `cargo rustc` will build all
+binary and library targets of the selected package.
+
+{{> options-targets-bin-auto-built }}
+
+{{> options-targets }}
+
+{{> section-features }}
+
+### Compilation Options
+
+{{#options}}
+
+{{> options-target-triple }}
+
+{{> options-release }}
+
+{{#option "`--profile` _name_" }}
+Build with the given profile.
+
+The `rustc` subcommand will treat the following named profiles with special behaviors:
+
+* `check` --- Builds in the same way as the {{man "cargo-check" 1}} command with
+ the `dev` profile.
+* `test` --- Builds in the same way as the {{man "cargo-test" 1}} command,
+ enabling building in test mode which will enable tests and enable the `test`
+ cfg option. See [rustc
+ tests](https://doc.rust-lang.org/rustc/tests/index.html) for more detail.
+* `bench` --- Builds in the same was as the {{man "cargo-bench" 1}} command,
+ similar to the `test` profile.
+
+See the [the reference](../reference/profiles.html) for more details on profiles.
+{{/option}}
+
+{{> options-ignore-rust-version }}
+
+{{> options-timings }}
+
+{{#option "`--crate-type` _crate-type_"}}
+Build for the given crate type. This flag accepts a comma-separated list of
+1 or more crate types, of which the allowed values are the same as `crate-type`
+field in the manifest for configurating a Cargo target. See
+[`crate-type` field](../reference/cargo-targets.html#the-crate-type-field)
+for possible values.
+
+If the manifest contains a list, and `--crate-type` is provided,
+the command-line argument value will override what is in the manifest.
+
+This flag only works when building a `lib` or `example` library target.
+{{/option}}
+
+{{/options}}
+
+### Output Options
+
+{{#options}}
+{{> options-target-dir }}
+{{/options}}
+
+### Display Options
+
+{{#options}}
+
+{{> options-display }}
+
+{{> options-message-format }}
+
+{{/options}}
+
+### Manifest Options
+
+{{#options}}
+
+{{> options-manifest-path }}
+
+{{> options-locked }}
+
+{{/options}}
+
+{{> section-options-common }}
+
+### Miscellaneous Options
+
+{{#options}}
+{{> options-jobs }}
+{{> options-keep-going }}
+{{> options-future-incompat }}
+{{/options}}
+
+{{> section-environment }}
+
+{{> section-exit-status }}
+
+## EXAMPLES
+
+1. Check if your package (not including dependencies) uses unsafe code:
+
+ cargo rustc --lib -- -D unsafe-code
+
+2. Try an experimental flag on the nightly compiler, such as this which prints
+ the size of every type:
+
+ cargo rustc --lib -- -Z print-type-sizes
+
+3. Override `crate-type` field in Cargo.toml with command-line option:
+
+ cargo rustc --lib --crate-type lib,cdylib
+
+## SEE ALSO
+{{man "cargo" 1}}, {{man "cargo-build" 1}}, {{man "rustc" 1}}