Find a file
Alex Crichton a216b9f7cd Preserve $OUT_DIR across rebuilds
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
2014-08-18 23:43:27 -07:00
DESIGN WIP 2014-04-11 17:39:18 -07:00
src Preserve $OUT_DIR across rebuilds 2014-08-18 23:43:27 -07:00
tests Preserve $OUT_DIR across rebuilds 2014-08-18 23:43:27 -07:00
.gitignore Add a configure script 2014-07-28 18:07:09 -07:00
.travis.install.deps.sh static.rust-lang.org may be stale again? 2014-08-16 10:59:52 -07:00
.travis.yml Register new snapshots 2014-07-29 23:06:21 -07:00
.vimrc Add vimrc settings 2014-04-29 11:43:18 -07:00
Cargo.lock More import renaming fallout 2014-08-18 22:00:50 -07:00
Cargo.toml auto merge of #375 : wycats/cargo/doc-fewer-things, r=alexcrichton 2014-08-19 05:14:53 +00:00
configure Use libgit2 for driving git instead of the CLI 2014-08-16 15:54:07 -07:00
LICENSE-APACHE Add the standard Rust Apache/MIT license 2014-06-24 12:26:13 -07:00
LICENSE-MIT Add the standard Rust Apache/MIT license 2014-06-24 12:26:13 -07:00
Makefile.in Add a configure option to disable cross-tests 2014-08-10 22:04:15 -07:00
MANIFEST.md Use [[bin]] instead of [[executable]] in manifest examples 2014-07-18 12:58:48 +01:00
README.md Remove $ from lines in readme to improve copyability 2014-08-17 19:02:04 -04:00

Cargo downloads your Rust projects 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:

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.