2014-06-24 00:02:22 +00:00
|
|
|
|
Cargo downloads your Rust project’s dependencies and compiles your project.
|
|
|
|
|
|
2015-07-07 20:55:36 +00:00
|
|
|
|
Learn more at http://doc.crates.io/
|
2014-06-24 00:02:22 +00:00
|
|
|
|
|
2015-07-07 20:55:36 +00:00
|
|
|
|
## Installing Cargo
|
2014-07-07 14:49:14 +00:00
|
|
|
|
|
2015-07-07 20:55:36 +00:00
|
|
|
|
Cargo is distributed by default with Rust, so if you've got `rustc` installed
|
|
|
|
|
locally you probably also have `cargo` installed locally.
|
2014-07-07 14:49:14 +00:00
|
|
|
|
|
2015-07-07 20:55:36 +00:00
|
|
|
|
If, however, you would like to install Cargo from the nightly binaries that are
|
|
|
|
|
generated, you may also do so! Note that these nightlies are not official
|
|
|
|
|
binaries, so they are only provided in one format with one installation method.
|
|
|
|
|
Each tarball below contains a top-level `install.sh` script to install Cargo.
|
2014-07-07 14:49:14 +00:00
|
|
|
|
|
2014-09-19 02:16:19 +00:00
|
|
|
|
* [`x86_64-unknown-linux-gnu`](https://static.rust-lang.org/cargo-dist/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz)
|
|
|
|
|
* [`i686-unknown-linux-gnu`](https://static.rust-lang.org/cargo-dist/cargo-nightly-i686-unknown-linux-gnu.tar.gz)
|
|
|
|
|
* [`x86_64-apple-darwin`](https://static.rust-lang.org/cargo-dist/cargo-nightly-x86_64-apple-darwin.tar.gz)
|
|
|
|
|
* [`i686-apple-darwin`](https://static.rust-lang.org/cargo-dist/cargo-nightly-i686-apple-darwin.tar.gz)
|
2014-11-10 12:44:28 +00:00
|
|
|
|
* [`x86_64-pc-windows-gnu`](https://static.rust-lang.org/cargo-dist/cargo-nightly-x86_64-pc-windows-gnu.tar.gz)
|
|
|
|
|
* [`i686-pc-windows-gnu`](https://static.rust-lang.org/cargo-dist/cargo-nightly-i686-pc-windows-gnu.tar.gz)
|
2015-07-07 20:55:36 +00:00
|
|
|
|
* [`x86_64-pc-windows-msvc`](https://static.rust-lang.org/cargo-dist/cargo-nightly-x86_64-pc-windows-msvc.tar.gz)
|
2014-07-30 17:11:36 +00:00
|
|
|
|
|
2015-07-07 20:55:36 +00:00
|
|
|
|
Note that if you're on Windows you will have to run the `install.sh` script from
|
|
|
|
|
inside an MSYS shell, likely from a MinGW-64 installation.
|
2014-07-07 14:49:14 +00:00
|
|
|
|
|
2015-07-07 20:55:36 +00:00
|
|
|
|
## Compiling from Source
|
2014-04-11 10:11:45 +00:00
|
|
|
|
|
2014-09-07 18:25:26 +00:00
|
|
|
|
Cargo requires the following tools and packages to build:
|
|
|
|
|
|
|
|
|
|
* `rustc`
|
|
|
|
|
* `python`
|
2015-07-07 20:55:36 +00:00
|
|
|
|
* `curl` (on Unix)
|
2014-09-07 18:25:26 +00:00
|
|
|
|
* `cmake`
|
2015-07-07 20:55:36 +00:00
|
|
|
|
* OpenSSL headers (only for Unix, this is the `libssl-dev` package on ubuntu)
|
2014-09-07 18:25:26 +00:00
|
|
|
|
|
|
|
|
|
Cargo can then be compiled like many other standard unix-like projects:
|
2014-07-30 17:11:36 +00:00
|
|
|
|
|
2014-08-17 22:58:07 +00:00
|
|
|
|
```sh
|
|
|
|
|
git clone https://github.com/rust-lang/cargo
|
|
|
|
|
cd cargo
|
2015-07-28 22:01:11 +00:00
|
|
|
|
git submodule update --init
|
2015-07-07 20:55:36 +00:00
|
|
|
|
python src/etc/install-deps.py
|
2014-12-29 21:05:22 +00:00
|
|
|
|
./configure --local-rust-root="$PWD"/rustc
|
2014-08-17 22:58:07 +00:00
|
|
|
|
make
|
|
|
|
|
make install
|
2014-07-30 17:11:36 +00:00
|
|
|
|
```
|
2014-07-29 05:13:30 +00:00
|
|
|
|
|
2014-07-30 17:11:36 +00:00
|
|
|
|
More options can be discovered through `./configure`, such as compiling cargo
|
|
|
|
|
for more than one target. For example, if you'd like to compile both 32 and 64
|
|
|
|
|
bit versions of cargo on unix you would use:
|
|
|
|
|
|
|
|
|
|
```
|
2014-07-30 19:43:29 +00:00
|
|
|
|
$ ./configure --target=i686-unknown-linux-gnu,x86_64-unknown-linux-gnu
|
2014-07-30 17:11:36 +00:00
|
|
|
|
```
|
2014-04-11 10:11:45 +00:00
|
|
|
|
|
2015-02-23 13:12:44 +00:00
|
|
|
|
## Adding new subcommands to Cargo
|
|
|
|
|
|
2015-07-07 20:55:36 +00:00
|
|
|
|
Cargo is designed to be extensible with new subcommands without having to modify
|
|
|
|
|
Cargo itself. See [the Wiki page][third-party-subcommands] for more details and
|
|
|
|
|
a list of known community-developed subcommands.
|
2015-02-23 13:12:44 +00:00
|
|
|
|
|
|
|
|
|
[third-party-subcommands]: https://github.com/rust-lang/cargo/wiki/Third-party-cargo-subcommands
|
|
|
|
|
|
2014-06-24 20:37:28 +00:00
|
|
|
|
## Contributing to the Docs
|
|
|
|
|
|
2014-09-11 21:12:26 +00:00
|
|
|
|
To contribute to the docs, all you need to do is change the markdown files in
|
|
|
|
|
the `src/doc` directory.
|
2014-06-24 20:37:28 +00:00
|
|
|
|
|
2014-07-30 17:11:36 +00:00
|
|
|
|
## Reporting Issues
|
|
|
|
|
|
|
|
|
|
Found a bug? We'd love to know about it!
|
|
|
|
|
|
|
|
|
|
Please report all issues on the github [issue tracker][issues].
|
|
|
|
|
|
|
|
|
|
[issues]: https://github.com/rust-lang/cargo/issues
|
|
|
|
|
|
2014-06-24 15:10:31 +00:00
|
|
|
|
## License
|
|
|
|
|
|
|
|
|
|
Cargo is primarily distributed under the terms of both the MIT license
|
|
|
|
|
and the Apache License (Version 2.0).
|
|
|
|
|
|
|
|
|
|
See LICENSE-APACHE and LICENSE-MIT for details.
|
2014-10-02 19:40:33 +00:00
|
|
|
|
|
|
|
|
|
### Third party software
|
|
|
|
|
|
|
|
|
|
This product includes software developed by the OpenSSL Project
|
|
|
|
|
for use in the OpenSSL Toolkit (http://www.openssl.org/).
|
|
|
|
|
|
|
|
|
|
In binary form, this product includes software that is licensed under the
|
|
|
|
|
terms of the GNU General Public License, version 2, with a linking exception,
|
|
|
|
|
which can be obtained from the [upstream repository][1].
|
|
|
|
|
|
|
|
|
|
[1]: https://github.com/libgit2/libgit2
|
|
|
|
|
|