![]() The original choice for completely destroying $OUT_DIR was to focus on repeatable builds to ensure that stale items in $OUT_DIR don't affect later compilations. This commit moves this responsibility from cargo to the build command itself. Build commands are now responsible for cleaning out old artifacts and ensuring that when invoked the state of $OUT_DIR is as it would be if it started with an empty $OUT_DIR. This will allow for very long build commands based on `make` to have a much faster incremental build time as they won't have to rebuild everything when updated. This can cause non-repeatable builds with build commands if stale artifacts are never removed (but still used in the rust compilation step), but this will now be considered a bug in the build command rather than for cargo itself. Closes #382 |
||
---|---|---|
DESIGN | ||
src | ||
tests | ||
.gitignore | ||
.travis.install.deps.sh | ||
.travis.yml | ||
.vimrc | ||
Cargo.lock | ||
Cargo.toml | ||
configure | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
Makefile.in | ||
MANIFEST.md | ||
README.md |
Cargo downloads your Rust project’s dependencies and compiles your project.
Learn more at http://crates.io/.
Installing cargo from nightlies
Cargo has nightlies available for use. The cargo source is not always guaranteed to compile on rust master as it may lag behind by a day or two. Nightlies, however, will run regardless of this fact!
triple=x86_64-unknown-linux-gnu
curl -O http://static.rust-lang.org/cargo-dist/cargo-nightly-$triple.tar.gz
tar xf cargo-nightly-$triple.tar.gz
./cargo-nightly-$triple/install.sh
Nightlies are available for the following triples:
x86_64-unknown-linux-gnu
i686-unknown-linux-gnu
x86_64-apple-darwin
i686-apple-darwin
i686-pc-mingw32
Note that if you're using the windows snapshot you will need Mingw-w64 installed as well as MSYS. The installation script needs to be run inside the MSYS shell.
Compiling cargo
Cargo can be compiled like many other standard unix-like projects:
git clone https://github.com/rust-lang/cargo
cd cargo
./configure
make
make install
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:
$ ./configure --target=i686-unknown-linux-gnu,x86_64-unknown-linux-gnu
Contributing to the Docs
To contribute to the docs, please submit pull requests to wycats/cargo-website. All you need to do is change the markdown files in the source directory.
Reporting Issues
Found a bug? We'd love to know about it!
Please report all issues on the github issue tracker.
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.