]> git.proxmox.com Git - cargo.git/log
cargo.git
10 years agoDisable doctests separately from tests
Alex Crichton [Mon, 11 Aug 2014 04:27:17 +0000 (21:27 -0700)]
Disable doctests separately from tests

This adds a `doctest = false` option to the `Cargo.toml` config for a target to
disable doc tests for the target. Notably `test = false` does not disable this
as it is separately toggleable.

Closes #353

10 years agoSupport --target with `cargo test`
Alex Crichton [Mon, 11 Aug 2014 04:12:32 +0000 (21:12 -0700)]
Support --target with `cargo test`

Closes #356

10 years agoFix `cargo clean` when not in the root dir
Alex Crichton [Mon, 11 Aug 2014 04:01:59 +0000 (21:01 -0700)]
Fix `cargo clean` when not in the root dir

Closes #361

10 years agoFix updating git sources a new lockfile is committed
Alex Crichton [Sun, 10 Aug 2014 05:53:25 +0000 (22:53 -0700)]
Fix updating git sources a new lockfile is committed

This is the actual fix for #345

10 years agoUpdate rust-encoding
Alex Crichton [Sun, 10 Aug 2014 04:05:33 +0000 (21:05 -0700)]
Update rust-encoding

Closes #357

10 years agoauto merge of #347 : alexcrichton/cargo/snapshots, r=new
bors [Fri, 8 Aug 2014 05:03:07 +0000 (05:03 +0000)]
auto merge of #347 : alexcrichton/cargo/snapshots, r=new

10 years agoRegister new snapshots
Alex Crichton [Fri, 8 Aug 2014 04:59:27 +0000 (21:59 -0700)]
Register new snapshots

10 years agoauto merge of #341 : alexcrichton/cargo/doc-test-tweaks, r=wycats
bors [Fri, 8 Aug 2014 03:54:44 +0000 (03:54 +0000)]
auto merge of #341 : alexcrichton/cargo/doc-test-tweaks, r=wycats

10 years agoMake sure version env vars are always present
Alex Crichton [Thu, 7 Aug 2014 15:42:16 +0000 (08:42 -0700)]
Make sure version env vars are always present

They were accidentally left out of the `rustdoc --test` stage which caused
crates not to be able to be compiled.

10 years agoVerbosely say what's happening during doc tests
Alex Crichton [Thu, 7 Aug 2014 15:27:05 +0000 (08:27 -0700)]
Verbosely say what's happening during doc tests

Or at least verbosely say when -v is provided.

10 years agoFix --extern for doc tests for the local crate.
Alex Crichton [Thu, 7 Aug 2014 15:26:38 +0000 (08:26 -0700)]
Fix --extern for doc tests for the local crate.

Closes #340

10 years agoauto merge of #338 : alexcrichton/cargo/fix-dylib-tests, r=wycats
bors [Thu, 7 Aug 2014 02:03:01 +0000 (02:03 +0000)]
auto merge of #338 : alexcrichton/cargo/fix-dylib-tests, r=wycats

10 years agoDon't match the output of the submodule test
Alex Crichton [Thu, 7 Aug 2014 01:45:32 +0000 (18:45 -0700)]
Don't match the output of the submodule test

Apparently really old versions of git ignore --quiet and print things anyway,
causing the test to fail on the linux buildbot.

10 years agoRobustly run binaries and tests after compilation
Alex Crichton [Thu, 7 Aug 2014 00:50:55 +0000 (17:50 -0700)]
Robustly run binaries and tests after compilation

These were previously just run by executing the raw binary, but this didn't
ensure that any of the necessary paths were in the dylib search path for the
host platform.

This commit enhances the return type of `compile_targets` to have information
about the result of compilation, along with the ability to spawn correctly
configured processes.

This primarily fixes `cargo test` and `cargo run` whenever dynamic dependencies
are involved, but it also fixes the two commands whenever there's a native
dynamic dependency involved as well.

10 years agoauto merge of #336 : alexcrichton/cargo/no-more-location, r=wycats
bors [Thu, 7 Aug 2014 00:13:32 +0000 (00:13 +0000)]
auto merge of #336 : alexcrichton/cargo/no-more-location, r=wycats

Now that rust-url supports windows paths in URLs, this commit jettisons the
janky Location enum in favor of just using Url everywhere.

10 years agoUpdate rust-url with a contained bugfix
Alex Crichton [Wed, 6 Aug 2014 23:11:18 +0000 (16:11 -0700)]
Update rust-url with a contained bugfix

10 years agoUnconditionally write Cargo.lock
Alex Crichton [Wed, 6 Aug 2014 23:10:40 +0000 (16:10 -0700)]
Unconditionally write Cargo.lock

Otherwise `cargo-update` ends up not doing much because all sources are
considered equal regardless of their precision.

10 years agoRemove the update_remotes flag entirely
Alex Crichton [Wed, 6 Aug 2014 20:54:24 +0000 (13:54 -0700)]
Remove the update_remotes flag entirely

This will inadvertently fix #337 as no lockfile will imply that all dependencies
are not precise, and will hence be fetched.

10 years agoRemove Location, use Url everywhere
Alex Crichton [Wed, 6 Aug 2014 16:21:10 +0000 (09:21 -0700)]
Remove Location, use Url everywhere

Now that rust-url supports windows paths in URLs, this commit jettisons the
janky Location enum in favor of just using Url everywhere.

10 years agoauto merge of #302 : alexcrichton/cargo/doc-test, r=wycats
bors [Wed, 6 Aug 2014 23:57:54 +0000 (23:57 +0000)]
auto merge of #302 : alexcrichton/cargo/doc-test, r=wycats

Whenever `cargo test` is run and a testable library target is available, the doc
tests will be run. This can be opted out of with `test = false` as usual.

This is currently not super useful due to rust-lang/rust#16157, but I expect
that to be merged soon. In the meantime examples will need to `extern crate foo`
explicitly.

Closes #334

10 years agoauto merge of #330 : alexcrichton/cargo/fix-cargo-doc2, r=wycats
bors [Wed, 6 Aug 2014 20:29:28 +0000 (20:29 +0000)]
auto merge of #330 : alexcrichton/cargo/fix-cargo-doc2, r=wycats

This erroneously used util::process instead of the custom process function in
the cargo_rustc module.

10 years agoEnsure env vars are set for cargo-doc
Alex Crichton [Wed, 6 Aug 2014 06:34:55 +0000 (23:34 -0700)]
Ensure env vars are set for cargo-doc

This erroneously used util::process instead of the custom process function in
the cargo_rustc module.

10 years agoauto merge of #329 : alexcrichton/cargo/fix-git-submodule, r=wycats
bors [Wed, 6 Aug 2014 19:34:04 +0000 (19:34 +0000)]
auto merge of #329 : alexcrichton/cargo/fix-git-submodule, r=wycats

The fast path bypassed updating the submodule which wasn't correct if we were
the first checkout.

10 years agoauto merge of #328 : alexcrichton/cargo/cargo-building-cargo, r=wycats
bors [Wed, 6 Aug 2014 19:20:56 +0000 (19:20 +0000)]
auto merge of #328 : alexcrichton/cargo/cargo-building-cargo, r=wycats

Cargo should be able to build with cargo so others can depend on the cargo
library. This means that the one requirement of the CFG_VERSION env var will not
be available. This alters `version()` to prioritize CFG_VERSION but fall back to
the cargo-specified variables.

10 years agoauto merge of #321 : alexcrichton/cargo/issue-304, r=wycats
bors [Wed, 6 Aug 2014 19:10:27 +0000 (19:10 +0000)]
auto merge of #321 : alexcrichton/cargo/issue-304, r=wycats

The lockfile should only be checked in for bins, not libs.

Closes #304

10 years agoauto merge of #320 : alexcrichton/cargo/fix-doc-bins, r=wycats
bors [Wed, 6 Aug 2014 18:58:18 +0000 (18:58 +0000)]
auto merge of #320 : alexcrichton/cargo/fix-doc-bins, r=wycats

This removes the check in the compilation phase, but adds an error if you're
documenting a library and a binary with the same name (as the rustdoc output
would conflict).

Closes #318

10 years agoauto merge of #319 : alexcrichton/cargo/fix-staticlibs, r=wycats
bors [Wed, 6 Aug 2014 18:49:48 +0000 (18:49 +0000)]
auto merge of #319 : alexcrichton/cargo/fix-staticlibs, r=wycats

The file-naming bits weren't handling the staticlib case

10 years agoFix the output type of `staticlib`
Alex Crichton [Mon, 4 Aug 2014 14:00:17 +0000 (07:00 -0700)]
Fix the output type of `staticlib`

The file-naming bits weren't handling the staticlib case

10 years agoFix submodules on the initial checkout
Alex Crichton [Wed, 6 Aug 2014 05:26:38 +0000 (22:26 -0700)]
Fix submodules on the initial checkout

The fast path bypassed updating the submodule which wasn't correct if we were
the first checkout.

10 years agoLift the requirement that cargo is built with make
Alex Crichton [Wed, 6 Aug 2014 03:54:32 +0000 (20:54 -0700)]
Lift the requirement that cargo is built with make

Cargo should be able to build with cargo so others can depend on the cargo
library. This means that the one requirement of the CFG_VERSION env var will not
be available. This alters `version()` to prioritize CFG_VERSION but fall back to
the cargo-specified variables.

10 years agoImplement doc tests
Alex Crichton [Fri, 1 Aug 2014 03:21:13 +0000 (20:21 -0700)]
Implement doc tests

Whenever `cargo test` is run and a testable library target is available, the doc
tests will be run. This can be opted out of with `test = false` as usual.

This is currently not super useful due to rust-lang/rust#16157, but I expect
that to be merged soon. In the meantime examples will need to `extern crate foo`
explicitly.

10 years agoRefactor cargo_test into an ops module
Alex Crichton [Fri, 1 Aug 2014 02:33:46 +0000 (19:33 -0700)]
Refactor cargo_test into an ops module

The logic for doc tests will get a little complex, so this is moved to aseparate
module instead of inside the executable.

10 years agoauto merge of #325 : dotdash/cargo/git_no_template, r=alexcrichton
bors [Tue, 5 Aug 2014 14:44:33 +0000 (14:44 +0000)]
auto merge of #325 : dotdash/cargo/git_no_template, r=alexcrichton

I customized my git repo template to default to the standard pre-commit
hook that checks for e.g. trailing whitespace and refuses to commit if
any trailing whitespace was found. This causes some of cargo's tests to
fail.

To be independent of the user's git template, create the repo for the
test without using any, by specifying an empty template.

10 years agoFix running tests using git on systems with customized git templates
Björn Steinbrink [Tue, 5 Aug 2014 10:24:17 +0000 (12:24 +0200)]
Fix running tests using git on systems with customized git templates

I customized my git repo template to default to the standard pre-commit
hook that checks for e.g. trailing whitespace and refuses to commit if
any trailing whitespace was found. This causes some of cargo's tests to
fail.

To be independent of the user's git template, create the repo for the
test without using any, by specifying an empty template.

10 years agoauto merge of #323 : alexcrichton/cargo/issue-314, r=wycats
bors [Mon, 4 Aug 2014 20:59:32 +0000 (20:59 +0000)]
auto merge of #323 : alexcrichton/cargo/issue-314, r=wycats

Closes #314

10 years agoUpdate the lockfile when deps are modified
Alex Crichton [Mon, 4 Aug 2014 17:50:32 +0000 (10:50 -0700)]
Update the lockfile when deps are modified

Closes #314

10 years agoauto merge of #317 : jdeseno/cargo/doc-manifest-path, r=alexcrichton
bors [Mon, 4 Aug 2014 14:59:32 +0000 (14:59 +0000)]
auto merge of #317 : jdeseno/cargo/doc-manifest-path, r=alexcrichton

10 years agoIgnore Cargo.lock for libs in `cargo-new`
Alex Crichton [Mon, 4 Aug 2014 14:45:25 +0000 (07:45 -0700)]
Ignore Cargo.lock for libs in `cargo-new`

The lockfile should only be checked in for bins, not libs.

Closes #304

10 years agoAllow documenting binary targets.
Alex Crichton [Mon, 4 Aug 2014 14:21:31 +0000 (07:21 -0700)]
Allow documenting binary targets.

This removes the check in the compilation phase, but adds an error if you're
documenting a library and a binary with the same name (as the rustdoc output
would conflict).

10 years agoUse same method to load manifest with doc sub-command
Joshua DeSeno [Mon, 4 Aug 2014 08:02:22 +0000 (17:02 +0900)]
Use same method to load manifest with doc sub-command

10 years agoauto merge of #309 : alexcrichton/cargo/snapshots, r=wycats
bors [Mon, 4 Aug 2014 04:34:57 +0000 (04:34 +0000)]
auto merge of #309 : alexcrichton/cargo/snapshots, r=wycats

These snapshots have the lockfile plus the per-target fingerprints. This also
additionally adds a lockfile to the repo for all our deps.

10 years agoRegister new snapshots
Alex Crichton [Sat, 2 Aug 2014 18:59:33 +0000 (11:59 -0700)]
Register new snapshots

These snapshots have the lockfile plus the per-target fingerprints. This also
additionally adds a lockfile to the repo for all our deps.

10 years agoauto merge of #314 : alexcrichton/cargo/hurray-for-windows, r=wycats
bors [Mon, 4 Aug 2014 03:25:05 +0000 (03:25 +0000)]
auto merge of #314 : alexcrichton/cargo/hurray-for-windows, r=wycats

On windows, git will check out files with different line endings causing the
same serialized resolve to be resolved slightly differently. Instead of
comparing contents, this commit alters by testing whether the decoded resolve is
equivalent to the to-be-written resolve and only aborts writing if the two are
equal.

10 years agoDeal with different encodings of Cargo.lock
Alex Crichton [Mon, 4 Aug 2014 01:38:25 +0000 (18:38 -0700)]
Deal with different encodings of Cargo.lock

On windows, git will check out files with different line endings causing the
same serialized resolve to be resolved slightly differently. Instead of
comparing contents, this commit alters by testing whether the decoded resolve is
equivalent to the to-be-written resolve and only aborts writing if the two are
equal.

10 years agoauto merge of #303 : alexcrichton/cargo/issue-299, r=wycats
bors [Sun, 3 Aug 2014 17:07:06 +0000 (17:07 +0000)]
auto merge of #303 : alexcrichton/cargo/issue-299, r=wycats

Closes #299

10 years agoauto merge of #308 : alexcrichton/cargo/enable-optimize, r=alexcrichton
bors [Sat, 2 Aug 2014 18:41:09 +0000 (18:41 +0000)]
auto merge of #308 : alexcrichton/cargo/enable-optimize, r=alexcrichton

10 years agoFix distcheck with --enable-optimize
Alex Crichton [Sat, 2 Aug 2014 18:39:39 +0000 (11:39 -0700)]
Fix distcheck with --enable-optimize

10 years agoauto merge of #294 : alexcrichton/cargo/here-we-go, r=wycats
bors [Sat, 2 Aug 2014 17:56:11 +0000 (17:56 +0000)]
auto merge of #294 : alexcrichton/cargo/here-we-go, r=wycats

This is a series of commits which culminate in fixing #214. The last remaining bit is that freshness for an entire package is still considered if the package has a `build` command, but that is pretty easy to fix and I plan on doing so soon-ish.

10 years agoMake freshness tests more robust with time travel
Alex Crichton [Sat, 2 Aug 2014 07:08:31 +0000 (00:08 -0700)]
Make freshness tests more robust with time travel

Add a helper function to forcibly move a tree back one hour so new edits are
picked up correctly.

10 years agoAdd a --enable-optimize flag to ./configure
Alex Crichton [Sat, 2 Aug 2014 17:16:35 +0000 (10:16 -0700)]
Add a --enable-optimize flag to ./configure

10 years agoDon't tromp over too many files when downloading the snapshot
Alex Crichton [Sat, 2 Aug 2014 06:31:11 +0000 (23:31 -0700)]
Don't tromp over too many files when downloading the snapshot

10 years agoImplement per-target fingerprints
Alex Crichton [Tue, 29 Jul 2014 18:27:40 +0000 (11:27 -0700)]
Implement per-target fingerprints

This commit refines the granularity of fingerprints from packages to targets,
building on the existing infrastructure. All invocations of rustc now include
the --dep-info flag which will emit makefile-like dependency information. This
information is then parsed later on to determine if all the files are fresh.

The purpose of this commit is to refine the set of files which indicate that a
target needs to be re-built. Before this commit if you modified a test it would
rebuild the entire library, but after this commit it only rebuilds the relevant
test.

Closes #214
Closes #289

10 years agoPrepare for per-target fingerprints
Alex Crichton [Tue, 29 Jul 2014 17:20:42 +0000 (10:20 -0700)]
Prepare for per-target fingerprints

This commit refactors all related infrastructure for the cargo_rustc module to
move the granularity of fingerprints from packages to targets. This involved
heavily modifying the `JobQueue` structure to understand a finer-grained target
for dirtiness propagation and dependency management, and then dealing with
fallout in the main module.

The fingerprint module has been refactored to support a per-target fingerprint.
A fallout of this change is that each build step has its own fingerprint,
including the custom build command step. This will be implemented in a future
commit.

As fallout of this reorganization, we are now exploiting the maximal parallelism
within packages themselves whereas before we were only partially parallelizing.
No new features were added as part of this commit, so I just ensured that all
the tests ran.

10 years agoPower the TaskPool with a sync channel
Alex Crichton [Tue, 29 Jul 2014 04:23:48 +0000 (21:23 -0700)]
Power the TaskPool with a sync channel

This rate limits the jobs entering the pool to ensure that the number of
pending jobs is actually close to the number of cores. The current behavior is
to print all pending jobs, even when they're not executing, which may be
confusing.

10 years agoMake the dependency queue entirely generic
Alex Crichton [Tue, 29 Jul 2014 04:13:30 +0000 (21:13 -0700)]
Make the dependency queue entirely generic

This paves the way for future intra-package parallelism as opposed to just
inter-package parallelism.

10 years agoFix the build.
Steve Klabnik [Sat, 2 Aug 2014 01:56:12 +0000 (21:56 -0400)]
Fix the build.

After an upstream fix in docopt, cargo now builds on rust HEAD. Also,
move to the semver crate rather than the deprecated built-in one.

10 years agoauto merge of #301 : alexcrichton/cargo/lockfile, r=wycats
bors [Fri, 1 Aug 2014 22:29:29 +0000 (22:29 +0000)]
auto merge of #301 : alexcrichton/cargo/lockfile, r=wycats

This PR is a series of commits building off the `lockfile` branch which finishes the work on the lockfile as well as implementing the `cargo-update` command.

This PR deprecates the `-u` flag in favor of the `cargo update` command.

10 years agoGo back to manually stringifying resolve
Alex Crichton [Fri, 1 Aug 2014 17:46:04 +0000 (10:46 -0700)]
Go back to manually stringifying resolve

10 years agoEnsure update updates all shared deps
Alex Crichton [Fri, 1 Aug 2014 17:39:11 +0000 (10:39 -0700)]
Ensure update updates all shared deps

10 years agoEnsure manifest paths are absolute paths
Alex Crichton [Fri, 1 Aug 2014 15:52:51 +0000 (08:52 -0700)]
Ensure manifest paths are absolute paths

Closes #299

10 years agoImplement cargo-update
Alex Crichton [Thu, 31 Jul 2014 22:19:20 +0000 (15:19 -0700)]
Implement cargo-update

10 years agoTouch up some documentation around commands
Alex Crichton [Thu, 31 Jul 2014 22:19:09 +0000 (15:19 -0700)]
Touch up some documentation around commands

10 years agoAdd a small profiling framework
Alex Crichton [Thu, 31 Jul 2014 19:53:17 +0000 (12:53 -0700)]
Add a small profiling framework

This should help aid in debugging slow parts of cargo by setting the
CARGO_PROFILE environment variable.

10 years agoAvoid executing git in fingerprint()
Alex Crichton [Thu, 31 Jul 2014 19:24:07 +0000 (12:24 -0700)]
Avoid executing git in fingerprint()

We already discovered the local rev earlier on, so there's no need to rediscover
it through git.

10 years agoOptimize freshness of git repos
Alex Crichton [Thu, 31 Jul 2014 19:20:05 +0000 (12:20 -0700)]
Optimize freshness of git repos

This commit cuts down on the number of invocations of `git` to make the "happy
path" of an up-to-date git repo much smoother. The precise information is also
applied from the lockfile to speed things up.

10 years agoBe sure to not emit a lone `?` in a URL
Alex Crichton [Thu, 31 Jul 2014 19:18:59 +0000 (12:18 -0700)]
Be sure to not emit a lone `?` in a URL

10 years agoUse sources from the lockfile
Alex Crichton [Thu, 31 Jul 2014 19:18:09 +0000 (12:18 -0700)]
Use sources from the lockfile

The sources in the lock file contain precise information about git deps so we
want them over the non-precise versions in the source.

10 years agoUse precise if it's there
Alex Crichton [Thu, 31 Jul 2014 17:20:33 +0000 (10:20 -0700)]
Use precise if it's there

10 years agoFix all tests and rebase conflicts
Alex Crichton [Wed, 30 Jul 2014 19:43:29 +0000 (12:43 -0700)]
Fix all tests and rebase conflicts

This rebases the lockfile branch to master and updates all code necessary to get
the tests passing again.

10 years agoSuccessfully roundtrip the lockfile
Tim Carey-Smith [Sat, 26 Jul 2014 00:23:40 +0000 (17:23 -0700)]
Successfully roundtrip the lockfile

This writes out and reads the lockfile, but it does nothing to verify
that the lockfile is still up to date, so it's not actually ready to be
used.

10 years agoICE
Tim Carey-Smith [Fri, 25 Jul 2014 23:05:27 +0000 (16:05 -0700)]
ICE

10 years agoWIP
Tim Carey-Smith [Thu, 24 Jul 2014 22:55:54 +0000 (15:55 -0700)]
WIP

10 years ago[WIP] Generate Cargo.lock on successful resolve
Tim Carey-Smith [Tue, 15 Jul 2014 22:35:05 +0000 (15:35 -0700)]
[WIP] Generate Cargo.lock on successful resolve

10 years agoauto merge of #298 : alexcrichton/cargo/readme, r=wycats
bors [Wed, 30 Jul 2014 20:23:49 +0000 (20:23 +0000)]
auto merge of #298 : alexcrichton/cargo/readme, r=wycats

Closes #271
Closes #274
Closes #292

10 years agoauto merge of #297 : alexcrichton/cargo/url, r=wycats
bors [Wed, 30 Jul 2014 19:59:30 +0000 (19:59 +0000)]
auto merge of #297 : alexcrichton/cargo/url, r=wycats

The standard url library is soon-to-be deprecated, and now that we're
bootstrapping it's trivial to move over to rust-url.

Closes #204

10 years agoauto merge of #295 : alexcrichton/cargo/snapshots, r=alexcrichton,me
bors [Wed, 30 Jul 2014 17:58:28 +0000 (17:58 +0000)]
auto merge of #295 : alexcrichton/cargo/snapshots, r=alexcrichton,me

10 years agoUpdate the README with current information
Alex Crichton [Wed, 30 Jul 2014 17:11:36 +0000 (10:11 -0700)]
Update the README with current information

Closes #271
Closes #274
Closes #292

10 years agoMigrate from liburl to rust-url
Alex Crichton [Wed, 30 Jul 2014 16:52:37 +0000 (09:52 -0700)]
Migrate from liburl to rust-url

The standard url library is soon-to-be deprecated, and now that we're
bootstrapping it's trivial to move over to rust-url.

Closes #204

10 years agoRegister new snapshots
Alex Crichton [Wed, 30 Jul 2014 01:11:51 +0000 (18:11 -0700)]
Register new snapshots

10 years agoauto merge of #290 : omasanori/cargo/makefile, r=alexcrichton
bors [Tue, 29 Jul 2014 21:30:40 +0000 (21:30 +0000)]
auto merge of #290 : omasanori/cargo/makefile, r=alexcrichton

Both Makefile.in and install.sh prepended `${DESTDIR}` to `${PREFIX}` so the installation prefix became `${DESTDIR}/${DESTDIR}/${PREFIX}`. Also, the script assumes that `${DESTDIR}` ends with a slash or `${PREFIX}` starts with it so I appended a slash to `${DESTDIR}`.

10 years agoauto merge of #285 : alexcrichton/cargo/fix-cargo-doc, r=wycats
bors [Tue, 29 Jul 2014 21:14:29 +0000 (21:14 +0000)]
auto merge of #285 : alexcrichton/cargo/fix-cargo-doc, r=wycats

The existing rustdoc behavior for working with an already-present directory is
good enough, so there's no need for cargo to help out by blowing things away.
This also makes the copy-back portion easier by just not having it.

Closes #284

10 years agoauto merge of #255 : michaelsproul/cargo/missing-pkg-error, r=alexcrichton
bors [Tue, 29 Jul 2014 20:44:31 +0000 (20:44 +0000)]
auto merge of #255 : michaelsproul/cargo/missing-pkg-error, r=alexcrichton

I've changed the error message that appears when a dependency can't be located. With my changes, mismatches between Cargo.toml dependency names and actual dependency package names are (slightly) more apparent. This doesn't change the error that appears when a dependency has an invalid source.

Example:

```toml
# Cargo.toml
...
[dependencies.foo]

path = "foo"
```

```toml
# foo/Cargo.toml
[package]

name = "not_foo"
```

Previously:

```
$ cargo build
No package named Dependency { name: foo, namespace: file:/home/michael/cargo_test, req: *, transitive: true } found
```

Now:

```
$ cargo build
No package named `foo` found (required by `bar`).
Location searched: /some/folder/not_foo
Version required: *
```

In verbose mode I think it would be also nice to print a list of packages that Cargo *does* know about. Something like: "Known packages amongst dependencies: not_foo, etc"

10 years agoauto merge of #286 : benizi/cargo/fix/update-build-in-readme, r=alexcrichton
bors [Tue, 29 Jul 2014 19:44:34 +0000 (19:44 +0000)]
auto merge of #286 : benizi/cargo/fix/update-build-in-readme, r=alexcrichton

- Remove outdated `git submodule` instructions
- Add new `./configure` build step

10 years agoRemove duplicated ${DESTDIR}.
OGINO Masanori [Tue, 29 Jul 2014 14:24:35 +0000 (23:24 +0900)]
Remove duplicated ${DESTDIR}.

Both Makefile.in and install.sh prepended ${DESTDIR} to ${PREFIX} so the
installation prefix became ${DESTDIR}/${DESTDIR}/${PREFIX}.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
10 years agoImprove the error message for missing packages.
Michael Sproul [Thu, 24 Jul 2014 11:16:20 +0000 (21:16 +1000)]
Improve the error message for missing packages.

10 years agoauto merge of #283 : alexcrichton/cargo/fix-fresh-plugin-deps, r=wycats
bors [Tue, 29 Jul 2014 05:29:34 +0000 (05:29 +0000)]
auto merge of #283 : alexcrichton/cargo/fix-fresh-plugin-deps, r=wycats

When copying files over from the old root to the new root on a fresh
compilation, care must be taken to preserve the correct plugin/host version of
each dependency. The previous code copied back over at most one library, but
this commit fixes this behavior by copying over all targets necessary for
compilation.

10 years agoUpdate README with new build instructions
Benjamin R. Haskell [Tue, 29 Jul 2014 05:13:30 +0000 (01:13 -0400)]
Update README with new build instructions

- Remove outdated `git submodule` instructions
- Add new `./configure` build step

10 years agoDon't blow away target/doc
Alex Crichton [Tue, 29 Jul 2014 03:09:07 +0000 (20:09 -0700)]
Don't blow away target/doc

The existing rustdoc behavior for working with an already-present directory is
good enough, so there's no need for cargo to help out by blowing things away.
This also makes the copy-back portion easier by just not having it.

Closes #284

10 years agoCorrectly preserve plugin deps
Alex Crichton [Tue, 29 Jul 2014 02:35:08 +0000 (19:35 -0700)]
Correctly preserve plugin deps

When copying files over from the old root to the new root on a fresh
compilation, care must be taken to preserve the correct plugin/host version of
each dependency. The previous code copied back over at most one library, but
this commit fixes this behavior by copying over all targets necessary for
compilation.

10 years agoauto merge of #277 : alexcrichton/cargo/add-configure-script, r=wycats
bors [Tue, 29 Jul 2014 01:17:48 +0000 (01:17 +0000)]
auto merge of #277 : alexcrichton/cargo/add-configure-script, r=wycats

This configure script is similar to rust's in that it doesn't require anything
like autotools, it's just a meta-script to "generate" a makefile and perform
run-of-the-mill validation/discovery before the Makefile is run.

The main purpose of this rewrite is to support multi-target and targeted builds.
This will allow us to produce 32-bit snapshots for platforms as well as easily
providing `./configure --target $foo` for initialization.

cc #274

10 years agoAdd a configure script
Alex Crichton [Mon, 28 Jul 2014 15:01:54 +0000 (08:01 -0700)]
Add a configure script

This configure script is similar to rust's in that it doesn't require anything
like autotools, it's just a meta-script to "generate" a makefile and perform
run-of-the-mill validation/discovery before the Makefile is run.

The main purpose of this rewrite is to support multi-target and targeted builds.
This will allow us to produce 32-bit snapshots for platforms as well as easily
providing `./configure --target $foo` for initialization.

cc #274

10 years agoauto merge of #282 : alexcrichton/cargo/fix-some-cross-compile-with-plugins, r=wycats
bors [Tue, 29 Jul 2014 00:14:32 +0000 (00:14 +0000)]
auto merge of #282 : alexcrichton/cargo/fix-some-cross-compile-with-plugins, r=wycats

* Make sure plugins link to plugin dependencies, not target dependencies.
  Previously the --extern flag was being passed incorrectly but the dependency
  was being picked up by -L anyway.

* Fix a type and actually put the host dep directory into LD_LIBRARY_PATH, not
  the target directory. A test was added for this change.

10 years agoFix some dep errors with cross-compiled plugins
Alex Crichton [Tue, 29 Jul 2014 00:08:46 +0000 (17:08 -0700)]
Fix some dep errors with cross-compiled plugins

* Make sure plugins link to plugin dependencies, not target dependencies.
  Previously the --extern flag was being passed incorrectly but the dependency
  was being picked up by -L anyway.

* Fix a type and actually put the host dep directory into LD_LIBRARY_PATH, not
  the target directory. A test was added for this change.

10 years agoauto merge of #281 : alexcrichton/cargo/no-more-warnings, r=wycats
bors [Mon, 28 Jul 2014 21:14:32 +0000 (21:14 +0000)]
auto merge of #281 : alexcrichton/cargo/no-more-warnings, r=wycats

This helps keep the build a little cleaner and any breakage that happens due to
rust changing will likely be mitigated by nightlies.

10 years agoDeny all warnings when building cargo
Alex Crichton [Mon, 28 Jul 2014 20:57:57 +0000 (13:57 -0700)]
Deny all warnings when building cargo

This helps keep the build a little cleaner and any breakage that happens due to
rust changing will likely be mitigated by nightlies.

10 years agoauto merge of #266 : alexcrichton/cargo/docopt, r=wycats
bors [Mon, 28 Jul 2014 20:39:24 +0000 (20:39 +0000)]
auto merge of #266 : alexcrichton/cargo/docopt, r=wycats

The hammer library currently has some shortcomings such as the inability to
document individual options. Additionally our handling with hammer of extra
arguments is dodgy at best currently.

This commit moves the repository to BurntSushi's docopt.rs library which seems
to more feature-complete at this time. Additionally, docopt has the great
benefit of a "document once, use everywhere" documentation strategy.

This migration solves two primary issues:

* Comprehensive and useful CLI documentation
* Gracefully handling flavorful combinations of arguments in odd combinations

10 years agoMove from hammer to docopt for option parsing
Alex Crichton [Thu, 24 Jul 2014 19:43:10 +0000 (12:43 -0700)]
Move from hammer to docopt for option parsing

The hammer library currently has some shortcomings such as the inability to
document individual options. Additionally our handling with hammer of extra
arguments is dodgy at best currently.

This commit moves the repository to BurntSushi's docopt.rs library which seems
to more feature-complete at this time. Additionally, docopt has the great
benefit of a "document once, use everywhere" documentation strategy.

This migration solves two primary issues:

* Comprehensive and useful CLI documentation
* Gracefully handling flavorful combinations of arguments in odd combinations

Closes #218

10 years agoauto merge of #268 : alexcrichton/cargo/issue-267, r=wycats
bors [Mon, 28 Jul 2014 18:50:40 +0000 (18:50 +0000)]
auto merge of #268 : alexcrichton/cargo/issue-267, r=wycats

Previously a pipe was made which could mess with stdin like in #267.

Closes #267

10 years agoauto merge of #254 : alexcrichton/cargo/cargo-doc, r=wycats
bors [Mon, 28 Jul 2014 18:20:03 +0000 (18:20 +0000)]
auto merge of #254 : alexcrichton/cargo/cargo-doc, r=wycats

This is blocked until https://github.com/rust-lang/rust/pull/15939 lands, but in the meantime I figured I could get some eyes on this to make sure I'm sane.

Closes #130

10 years agoauto merge of #265 : alexcrichton/cargo/issue-261, r=wycats
bors [Mon, 28 Jul 2014 17:54:13 +0000 (17:54 +0000)]
auto merge of #265 : alexcrichton/cargo/issue-261, r=wycats

Receiving a signal is normally indicative of violent termination, so the
subcommand can't be relied upon to have printed some status information. As a
result, signals now have some extra errors printed to stderr when they fail.

Closes #261. The actual signal is still a bug, but it's an upstream rust bug.