]> git.proxmox.com Git - cargo.git/log
cargo.git
9 years agoauto merge of #897 : alexcrichton/cargo/issue-879, r=brson
bors [Tue, 18 Nov 2014 22:59:26 +0000 (22:59 +0000)]
auto merge of #897 : alexcrichton/cargo/issue-879, r=brson

Closes #879

9 years agoBe sure to include OUT_DIR for doc tests
Alex Crichton [Mon, 17 Nov 2014 18:34:27 +0000 (10:34 -0800)]
Be sure to include OUT_DIR for doc tests

9 years agoauto merge of #906 : eerden/cargo/zsh-completion, r=alexcrichton
bors [Tue, 18 Nov 2014 21:59:27 +0000 (21:59 +0000)]
auto merge of #906 : eerden/cargo/zsh-completion, r=alexcrichton

9 years agoAdd zsh completion for publish command
Ercan Erden [Tue, 18 Nov 2014 21:16:18 +0000 (16:16 -0500)]
Add zsh completion for publish command

9 years agoauto merge of #895 : alexcrichton/cargo/BurntSushi-lto, r=brson
bors [Tue, 18 Nov 2014 20:29:28 +0000 (20:29 +0000)]
auto merge of #895 : alexcrichton/cargo/BurntSushi-lto, r=brson

Closes #759, continuation of #790.

9 years agoauto merge of #893 : alexcrichton/cargo/issue-885, r=brson
bors [Tue, 18 Nov 2014 19:29:29 +0000 (19:29 +0000)]
auto merge of #893 : alexcrichton/cargo/issue-885, r=brson

This fixes a bug in cargo where target executables and libraries would be linked
to plugin native dependencies (not wanted!).

Closes #885

9 years agoauto merge of #894 : alexcrichton/cargo/issue-888, r=brson
bors [Tue, 18 Nov 2014 18:44:31 +0000 (18:44 +0000)]
auto merge of #894 : alexcrichton/cargo/issue-888, r=brson

9 years agoauto merge of #900 : steveklabnik/cargo/one_does_not_simply_make_cargo, r=alexcrichton
bors [Tue, 18 Nov 2014 17:44:33 +0000 (17:44 +0000)]
auto merge of #900 : steveklabnik/cargo/one_does_not_simply_make_cargo, r=alexcrichton

README fix with correct build instructions for building from source.

9 years agoOne does not simply `make` Cargo
Steve Klabnik [Mon, 17 Nov 2014 20:55:54 +0000 (15:55 -0500)]
One does not simply `make` Cargo

README fix with correct build instructions for building from source.

9 years agoauto merge of #899 : linkmauve/cargo/master, r=alexcrichton
bors [Mon, 17 Nov 2014 23:59:34 +0000 (23:59 +0000)]
auto merge of #899 : linkmauve/cargo/master, r=alexcrichton

9 years agoDirectly use python’s urllib instead of curl in etc/dl-snapshot.py
Emmanuel Gil Peyrot [Mon, 17 Nov 2014 20:21:06 +0000 (21:21 +0100)]
Directly use python’s urllib instead of curl in etc/dl-snapshot.py

9 years agoauto merge of #896 : jgillich/cargo/patch-3, r=alexcrichton
bors [Mon, 17 Nov 2014 18:44:30 +0000 (18:44 +0000)]
auto merge of #896 : jgillich/cargo/patch-3, r=alexcrichton

Currently the command output looks like this on Fedora:

```
$ curl https://static.rust-lang.org/rustup.sh | sudo bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  9866  100  9866    0     0  39592      0 --:--:-- --:--:-- --:--:-- 39622[sudo] password for jakob:
```
The first time I ran it, I didn't even realize it is asking for a password. By using the options for `silent` and `show-error`, we get this:

```
$ curl -sS https://static.rust-lang.org/rustup.sh | sudo bash
[sudo] password for jakob:
```
And errors are still displayed:

```
$ curl -sS https://example.invalid | sudo bash
curl: (6) Could not resolve host: example.invalid
[sudo] password for jakob:
```

9 years agoPolish off the LTO branch
Alex Crichton [Fri, 14 Nov 2014 16:49:01 +0000 (08:49 -0800)]
Polish off the LTO branch

9 years agohide curl progress output
Jakob Gillich [Mon, 17 Nov 2014 18:16:50 +0000 (19:16 +0100)]
hide curl progress output

9 years agoMerge branch 'lto' of https://github.com/BurntSushi/cargo into BurntSushi-lto
Alex Crichton [Fri, 14 Nov 2014 07:10:56 +0000 (23:10 -0800)]
Merge branch 'lto' of https://github.com/BurntSushi/cargo into BurntSushi-lto

9 years agoTighten up the example for a build script
Alex Crichton [Mon, 17 Nov 2014 17:49:40 +0000 (09:49 -0800)]
Tighten up the example for a build script

9 years agoFix panic with plugins and build commands
Alex Crichton [Mon, 17 Nov 2014 17:35:53 +0000 (09:35 -0800)]
Fix panic with plugins and build commands

This fixes a bug in cargo where target executables and libraries would be linked
to plugin native dependencies (not wanted!).

Closes #885

9 years agoauto merge of #891 : ruud-v-a/cargo/patch-1, r=alexcrichton
bors [Mon, 17 Nov 2014 16:59:25 +0000 (16:59 +0000)]
auto merge of #891 : ruud-v-a/cargo/patch-1, r=alexcrichton

The homepage was linking to outdated nightlies. This had been fixed in the readme, but not on the actual website.

9 years agoFix Windows nightly links.
Ruud van Asseldonk [Sun, 16 Nov 2014 22:19:29 +0000 (23:19 +0100)]
Fix Windows nightly links.

The homepage was linking to outdated nightlies. This had been fixed in the readme, but not on the actual website.

9 years agoauto merge of #881 : eerden/cargo/zsh-completion-improvements, r=alexcrichton
bors [Sun, 16 Nov 2014 01:29:24 +0000 (01:29 +0000)]
auto merge of #881 : eerden/cargo/zsh-completion-improvements, r=alexcrichton

Some small improvements:

Add test name completion from Cargo.toml

Add package name completion from Cargo.toml

Rename `--name` to `--\<target-name\>`

9 years agoImprove zsh completion
Ercan Erden [Sat, 15 Nov 2014 00:17:26 +0000 (19:17 -0500)]
Improve zsh completion

Add test name completion from Cargo.toml

Add package name completion from Cargo.toml

Rename --name to --<target-name>

9 years agoauto merge of #878 : alexcrichton/cargo/update-curl, r=brson
bors [Sat, 15 Nov 2014 07:08:58 +0000 (07:08 +0000)]
auto merge of #878 : alexcrichton/cargo/update-curl, r=brson

Closes #873

9 years agoUpdate curl-rust to fix SSL on windows
Alex Crichton [Fri, 14 Nov 2014 22:52:22 +0000 (14:52 -0800)]
Update curl-rust to fix SSL on windows

Closes #873

9 years agoauto merge of #865 : alexcrichton/cargo/no-more-name, r=brson
bors [Fri, 14 Nov 2014 23:33:33 +0000 (23:33 +0000)]
auto merge of #865 : alexcrichton/cargo/no-more-name, r=brson

With #843 and #839 coming around the bend soon, the original decision for
`--name` everywhere isn't making as much sense, for consistence this is renaming
these flags back to `--<target-name>` for the respective targets.

9 years agoauto merge of #861 : alexcrichton/cargo/issue-800, r=brson
bors [Fri, 14 Nov 2014 22:44:28 +0000 (22:44 +0000)]
auto merge of #861 : alexcrichton/cargo/issue-800, r=brson

This commit is an architectural change inside of Cargo itself in the way that it
handles the output format of builds. Previously when a build start, all existing
directories and files would be renamed to `old-foo` folders. The build would
then `rename` all files back into the right location as they were seen as fresh
and needed for the build.

The benefit of a system such as this is a rock-solid guarantee that the build
tree contains exactly what it would if we were to start the build from a totally
clean directory each time. There are some downsides, however:

* In #800, it was discovered that this method has an unfortunate interaction
  with Docker. Docker apparently will mount many filesystems which `rename` will
  not work across.

* I have seen countless flaky failures on windows due to an attempt to remove a
  file that was still in use somehow. I've never been able to truly track down
  why these failures are happening, however.

The new system for managing output files is to build up a list of all known
files at the start of a build, whitelist any necessary files when the build is
being prepared, and then wipe out all unknown files right before the build
begins. This is not quite as close to the guarantee as the benefits reaped
before because on the second build all build files will still be in their final
output locations, they may just get updated as part of the build as well. This
seems like an acceptable compromise, however.

Closes #800

9 years agoStop shuffling output files around so often
Alex Crichton [Thu, 13 Nov 2014 05:35:33 +0000 (21:35 -0800)]
Stop shuffling output files around so often

This commit is an architectural change inside of Cargo itself in the way that it
handles the output format of builds. Previously when a build start, all existing
directories and files would be renamed to `old-foo` folders. The build would
then `rename` all files back into the right location as they were seen as fresh
and needed for the build.

The benefit of a system such as this is a rock-solid guarantee that the build
tree contains exactly what it would if we were to start the build from a totally
clean directory each time. There are some downsides, however:

* In #800, it was discovered that this method has an unfortunate interaction
  with Docker. Docker apparently will mount many filesystems which `rename` will
  not work across.

* I have seen countless flaky failures on windows due to an attempt to remove a
  file that was still in use somehow. I've never been able to truly track down
  why these failures are happening, however.

The new system for managing output files is to build up a list of all known
files at the start of a build, whitelist any necessary files when the build is
being prepared, and then wipe out all unknown files right before the build
begins. This is not quite as close to the guarantee as the benefits reaped
before because on the second build all build files will still be in their final
output locations, they may just get updated as part of the build as well. This
seems like an acceptable compromise, however.

Closes #800

9 years agoauto merge of #839 : vhbit/cargo/lib-only, r=alexcrichton
bors [Fri, 14 Nov 2014 21:29:30 +0000 (21:29 +0000)]
auto merge of #839 : vhbit/cargo/lib-only, r=alexcrichton

Fixes #724

9 years agoBuild only lib from package
Valerii Hiora [Tue, 11 Nov 2014 12:59:06 +0000 (14:59 +0200)]
Build only lib from package

Fixes #724

9 years agoauto merge of #868 : IanConnolly/cargo/backtick_fix, r=alexcrichton
bors [Fri, 14 Nov 2014 17:14:33 +0000 (17:14 +0000)]
auto merge of #868 : IanConnolly/cargo/backtick_fix, r=alexcrichton

19:09 < ianconnolly> hey, i was browsing the cargo code, any particular reason why this string is mixed backticks + straight apostrophes?
                     https://github.com/rust-lang/cargo/blob/master/src/bin/cargo.rs#L157
19:10 < acrichto> ianconnolly: oh I think I missed that, it should probably just be `{}` like the rest of cargo

9 years agoMissed backtick fix
Ian Connolly [Thu, 13 Nov 2014 19:12:08 +0000 (19:12 +0000)]
Missed backtick fix

9 years agoauto merge of #866 : eerden/cargo/shell-completion-zsh, r=alexcrichton
bors [Fri, 14 Nov 2014 05:14:34 +0000 (05:14 +0000)]
auto merge of #866 : eerden/cargo/shell-completion-zsh, r=alexcrichton

Adds zsh autocomplete support for cargo command.

9 years agoauto merge of #870 : huonw/cargo/alex++, r=wycats
bors [Fri, 14 Nov 2014 03:44:36 +0000 (03:44 +0000)]
auto merge of #870 : huonw/cargo/alex++, r=wycats

9 years agoauto merge of #863 : alexcrichton/cargo/issue-855, r=huonw
bors [Fri, 14 Nov 2014 01:46:01 +0000 (01:46 +0000)]
auto merge of #863 : alexcrichton/cargo/issue-855, r=huonw

This provides a method of listing the files that will be in a package without
actually creating one.

Closes #855

9 years agoauto merge of #845 : jbranchaud/cargo/add-missing-semicolon-for-new-project-main...
bors [Fri, 14 Nov 2014 01:29:40 +0000 (01:29 +0000)]
auto merge of #845 : jbranchaud/cargo/add-missing-semicolon-for-new-project-main, r=alexcrichton

When you run `cargo new project-name --bin`, a project is generated by cargo
with a file, `src/main.rs`. This file has a main function with one line that
prints hello, world, but a semicolon is missing from the end of the
expression.

9 years agoImplement -l/--list for `cargo package`
Alex Crichton [Thu, 13 Nov 2014 06:28:30 +0000 (22:28 -0800)]
Implement -l/--list for `cargo package`

This provides a method of listing the files that will be in a package without
actually creating one.

Closes #855

9 years agoauto merge of #854 : alexcrichton/cargo/crates-io-dox, r=steveklabnik
bors [Thu, 13 Nov 2014 23:44:42 +0000 (23:44 +0000)]
auto merge of #854 : alexcrichton/cargo/crates-io-dox, r=steveklabnik

Rendered: http://alexcrichton.com/cargo/crates-io.html

cc @steveklabnik, @wycats

9 years agoAdd Alex to the authors.
Huon Wilson [Thu, 13 Nov 2014 23:08:17 +0000 (10:08 +1100)]
Add Alex to the authors.

9 years agoauto merge of #864 : tomaka/cargo/fix-814, r=alexcrichton
bors [Thu, 13 Nov 2014 22:45:53 +0000 (22:45 +0000)]
auto merge of #864 : tomaka/cargo/fix-814, r=alexcrichton

Close #814

Unfortunately I don't really know how I'd add a test for this.
In order to try compile a library then a binary, you need to successfully compile the library, which means that you'd need to pass a valid value instead of just `-l foo`

9 years agoauto merge of #862 : alexcrichton/cargo/issue-858, r=huonw
bors [Thu, 13 Nov 2014 22:14:45 +0000 (22:14 +0000)]
auto merge of #862 : alexcrichton/cargo/issue-858, r=huonw

Closes #858

9 years agoUpdate Makefile.in for installation
bar [Thu, 13 Nov 2014 19:36:27 +0000 (14:36 -0500)]
Update Makefile.in for installation

9 years agoauto merge of #842 : alexcrichton/cargo/issue-838, r=brson
bors [Thu, 13 Nov 2014 19:23:05 +0000 (19:23 +0000)]
auto merge of #842 : alexcrichton/cargo/issue-838, r=brson

A package can be required to be built for both the host and target architectures
in some cases. For example a crate could be a normal dependency and a build
dependency. Cargo specially handles this case with respect to the build script
to ensure that the build script is run once per output platform.

Cargo also has logic, however, to run the build script only once when the target
and host platforms are the same. In this case Cargo previously wasn't filling in
the local build script output cache for both the host and target platforms, just
the target platform. This commit remedies this situation by ensuring that cargo
populates both the host and target locations in the cache.

Closes #838

9 years agoauto merge of #859 : alexcrichton/cargo/issue-856, r=alexcrichton
bors [Thu, 13 Nov 2014 19:07:46 +0000 (19:07 +0000)]
auto merge of #859 : alexcrichton/cargo/issue-856, r=alexcrichton

I don't really expect all builders of cargo to be forced to use this rustc, and
I expect this to update frequently, but it will allow cargo PRs to land without
forcing a "put out the fires" fix for all nightly incompatibilities all at once.
This will allow rust upgrades to land separately and be reviewed separately.

Closes #856

9 years agoPin rustc to a date with known snapshots
Alex Crichton [Thu, 13 Nov 2014 00:05:33 +0000 (16:05 -0800)]
Pin rustc to a date with known snapshots

I don't really expect all builders of cargo to be forced to use this rustc, and
I expect this to update frequently, but it will allow cargo PRs to land without
forcing a "put out the fires" fix for all nightly incompatibilities all at once.
This will allow rust upgrades to land separately and be reviewed separately.

9 years agoAdd zsh completion
bar [Thu, 13 Nov 2014 06:50:03 +0000 (01:50 -0500)]
Add zsh completion

9 years agoRename --name flags to --<target-name>
Alex Crichton [Thu, 13 Nov 2014 17:37:09 +0000 (09:37 -0800)]
Rename --name flags to --<target-name>

With #843 and #839 coming around the bend soon, the original decision for
`--name` everywhere isn't making as much sense, for consistence this is renaming
these flags back to `--<target-name>` for the respective targets.

9 years ago-l flag no longer pass to binaries if there's a library in the package
Pierre Krieger [Thu, 13 Nov 2014 15:34:11 +0000 (16:34 +0100)]
-l flag no longer pass to binaries if there's a library in the package

9 years agoAdd documentation about crates.io usage
Alex Crichton [Wed, 12 Nov 2014 22:51:37 +0000 (14:51 -0800)]
Add documentation about crates.io usage

9 years agoImplement a command to list owners of a crate
Alex Crichton [Thu, 13 Nov 2014 06:15:41 +0000 (22:15 -0800)]
Implement a command to list owners of a crate

Closes #858

9 years agoauto merge of #844 : alexcrichton/cargo/less-registry, r=brson
bors [Thu, 13 Nov 2014 03:29:37 +0000 (03:29 +0000)]
auto merge of #844 : alexcrichton/cargo/less-registry, r=brson

Try to purge the word "registry" as much as possible in favor of just referring
to crates.io as "crates.io". This also enables the default index as being the
official rust-lang crates.io index.

9 years agoAdd `lto` option to profiles.
Andrew Gallant [Thu, 13 Nov 2014 02:20:44 +0000 (21:20 -0500)]
Add `lto` option to profiles.

Closes #759.

9 years agoauto merge of #857 : alexcrichton/cargo/update, r=alexcrichton
bors [Thu, 13 Nov 2014 01:50:43 +0000 (01:50 +0000)]
auto merge of #857 : alexcrichton/cargo/update, r=alexcrichton

We don't want to use the bundled gcc and the bundling location has changed since when this was originally written.

9 years agoFix a panic when building with build scripts
Alex Crichton [Tue, 11 Nov 2014 19:59:31 +0000 (11:59 -0800)]
Fix a panic when building with build scripts

A package can be required to be built for both the host and target architectures
in some cases. For example a crate could be a normal dependency and a build
dependency. Cargo specially handles this case with respect to the build script
to ensure that the build script is run once per output platform.

Cargo also has logic, however, to run the build script only once when the target
and host platforms are the same. In this case Cargo previously wasn't filling in
the local build script output cache for both the host and target platforms, just
the target platform. This commit remedies this situation by ensuring that cargo
populates both the host and target locations in the cache.

Closes #838

9 years agoThe bundled gcc has moved locations
Alex Crichton [Thu, 13 Nov 2014 00:00:00 +0000 (16:00 -0800)]
The bundled gcc has moved locations

9 years agoFix OUT_DIR not being passed to rustdoc
Pierre Krieger [Wed, 12 Nov 2014 12:12:02 +0000 (13:12 +0100)]
Fix OUT_DIR not being passed to rustdoc

9 years agoAdd the semicolon missing from the generated main.rs contents.
jbranchaud [Wed, 12 Nov 2014 05:00:05 +0000 (23:00 -0600)]
Add the semicolon missing from the generated main.rs contents.

When you run `cargo new project-name --bin`, a project is generated by cargo
with a file, `src/main.rs`. This file has a main function with one line that
prints hello, world, but a semicolon is missing from the end of the
expression.

9 years agoauto merge of #817 : alexcrichton/cargo/build-cmd, r=brson
bors [Tue, 11 Nov 2014 22:44:53 +0000 (22:44 +0000)]
auto merge of #817 : alexcrichton/cargo/build-cmd, r=brson

This registers a new cargo snapshot as well as updates all dependencies to versions that are using build scripts. This means that overrides can now be used when looking for native libs for cargo!

This also modifies the behavior of `--enable-nightly` to add some extra configuration the buildbot needs to build cargo on CentOS.

9 years agoUpgrade all deps to using build scripts
Alex Crichton [Thu, 6 Nov 2014 17:17:34 +0000 (09:17 -0800)]
Upgrade all deps to using build scripts

9 years agoauto merge of #827 : DiamondLovesYou/cargo/master, r=alexcrichton
bors [Tue, 11 Nov 2014 22:29:36 +0000 (22:29 +0000)]
auto merge of #827 : DiamondLovesYou/cargo/master, r=alexcrichton

9 years agoDon't count custom compile scripts as targets.
Richard Diamond [Tue, 11 Nov 2014 20:51:27 +0000 (14:51 -0600)]
Don't count custom compile scripts as targets.

9 years agoUpdate the UI around using crates.io
Alex Crichton [Tue, 11 Nov 2014 20:24:50 +0000 (12:24 -0800)]
Update the UI around using crates.io

Try to purge the word "registry" as much as possible in favor of just referring
to crates.io as "crates.io". This also enables the default index as being the
official rust-lang crates.io index.

9 years agoauto merge of #840 : alexcrichton/cargo/new-docs, r=brson
bors [Tue, 11 Nov 2014 19:17:49 +0000 (19:17 +0000)]
auto merge of #840 : alexcrichton/cargo/new-docs, r=brson

Rendered version: http://alexcrichton.com/cargo/

Closes https://github.com/rust-lang/crates.io/issues/14

9 years agoauto merge of #829 : alexcrichton/cargo/less-paniks, r=brson
bors [Tue, 11 Nov 2014 18:59:12 +0000 (18:59 +0000)]
auto merge of #829 : alexcrichton/cargo/less-paniks, r=brson

Unused overrides previously led to a panic, and build cmd outputs were cached in the *host* location instead of the *target* location.

9 years agoTweak doc style to match crates.io
Alex Crichton [Fri, 24 Oct 2014 00:26:41 +0000 (17:26 -0700)]
Tweak doc style to match crates.io

9 years agoauto merge of #828 : alexcrichton/cargo/issue-821, r=brson
bors [Tue, 11 Nov 2014 04:59:34 +0000 (04:59 +0000)]
auto merge of #828 : alexcrichton/cargo/issue-821, r=brson

They don't have any! We also care more about the other targets regardless.

Closes #821

9 years agoCache build output in the target build directory
Alex Crichton [Mon, 10 Nov 2014 17:52:14 +0000 (09:52 -0800)]
Cache build output in the target build directory

Placing it in the host directory may end up later on down the road causing a
spurious recompilation when one isn't necessary. I couldn't currently think of a
test case for this, as I don't think that this affects correctness.

9 years agoauto merge of #816 : alexcrichton/cargo/issue-812, r=brson
bors [Tue, 11 Nov 2014 01:59:36 +0000 (01:59 +0000)]
auto merge of #816 : alexcrichton/cargo/issue-812, r=brson

Closes #812

9 years agoDon't panic on unused overrides
Alex Crichton [Mon, 10 Nov 2014 17:36:36 +0000 (09:36 -0800)]
Don't panic on unused overrides

This previously did a failing hashtable lookup when an `Option`-returning `get`
would suffice.

9 years agoDon't look at custom build targets for output locs
Alex Crichton [Mon, 10 Nov 2014 17:22:04 +0000 (09:22 -0800)]
Don't look at custom build targets for output locs

They don't have any! We also care more about the other targets regardless.

Closes #821

9 years agoauto merge of #826 : tomaka/cargo/update-links-readme, r=alexcrichton
bors [Mon, 10 Nov 2014 16:44:36 +0000 (16:44 +0000)]
auto merge of #826 : tomaka/cargo/update-links-readme, r=alexcrichton

9 years agoUpdate links to windows nightlies in the README
Pierre Krieger [Mon, 10 Nov 2014 12:44:28 +0000 (13:44 +0100)]
Update links to windows nightlies in the README

9 years agoauto merge of #823 : DiamondLovesYou/cargo/master, r=alexcrichton
bors [Sun, 9 Nov 2014 19:59:34 +0000 (19:59 +0000)]
auto merge of #823 : DiamondLovesYou/cargo/master, r=alexcrichton

9 years agoRespect Target target vs host exe suffix distinction.
Richard Diamond [Sun, 9 Nov 2014 02:56:49 +0000 (20:56 -0600)]
Respect Target target vs host exe suffix distinction.

9 years agoClarify the documentation on `cargo test`
Alex Crichton [Fri, 7 Nov 2014 21:40:36 +0000 (13:40 -0800)]
Clarify the documentation on `cargo test`

Closes #812

9 years agoauto merge of #815 : alexcrichton/cargo/another-fix-oh-by-wait-i-verified-this-one...
bors [Fri, 7 Nov 2014 21:15:52 +0000 (21:15 +0000)]
auto merge of #815 : alexcrichton/cargo/another-fix-oh-by-wait-i-verified-this-one-its-ok, r=alexcrichton

Previously the host/target requirement for packages was not correctly calculated
as dependency edges to build dependencies weren't traversed by accident.

9 years agoAnother fix for cross-compiled build scripts
Alex Crichton [Fri, 7 Nov 2014 20:59:44 +0000 (12:59 -0800)]
Another fix for cross-compiled build scripts

Previously the host/target requirement for packages was not correctly calculated
as dependency edges to build dependencies weren't traversed by accident.

9 years agoauto merge of #813 : alexcrichton/cargo/build-cmd-cross-compile, r=brson
bors [Fri, 7 Nov 2014 19:28:57 +0000 (19:28 +0000)]
auto merge of #813 : alexcrichton/cargo/build-cmd-cross-compile, r=brson

These commits contain a number of improvements to the usage of build scripts when cross compiling. A few erroneous assumptions were made to start out with, and this also fixes the long-standing bug of using build scripts in host packages (e.g. plugins and build dependencies).

9 years agoFix build scripts and double-compiled packages
Alex Crichton [Fri, 7 Nov 2014 19:09:59 +0000 (11:09 -0800)]
Fix build scripts and double-compiled packages

This commit fixes support for build scripts in packages which are compiled for
both the host and target architectures. The support was previously hindered by
the fact that the build script was always invoked precisely once for the target
architecture unconditionally.

This adds support for build scripts themselves to depend on build scripts, and
everything should "just work" if build scripts respect their environment
variables.

9 years agoFix cross compiling with a build script
Alex Crichton [Fri, 7 Nov 2014 17:25:25 +0000 (09:25 -0800)]
Fix cross compiling with a build script

Previously there was a mixup of where the build script was getting compiled into
as well as where the output was going to. This commit fixes the problems for
now, but still has room for improvement in the future.

Build scripts themselves are now unconditionally built into `target/build/..`
because they're compiled for the host platform. Their outputs are in
`target/$target/build/..` as expected.

9 years agoauto merge of #798 : alexcrichton/cargo/issue-777, r=brson
bors [Fri, 7 Nov 2014 16:52:47 +0000 (16:52 +0000)]
auto merge of #798 : alexcrichton/cargo/issue-777, r=brson

At the same time this commit renames the `.tar.gz` extension to `.crate`. This
helps our perception on Windows as we're not trying to leave them out in the
dark, and we'd also like the ability to modify the format later in the future.

Closes #777

9 years agoauto merge of #811 : alexcrichton/cargo/update, r=alexcrichton
bors [Fri, 7 Nov 2014 16:32:17 +0000 (16:32 +0000)]
auto merge of #811 : alexcrichton/cargo/update, r=alexcrichton

Need to land them all as one unit to actually pass the whole test suite.

9 years agoUpdate with breaking changes from tonight's nigthly
Alex Crichton [Fri, 7 Nov 2014 06:38:26 +0000 (22:38 -0800)]
Update with breaking changes from tonight's nigthly

9 years agoPass `-C prefer-dynamic` for dylib dependencies
Alex Crichton [Thu, 6 Nov 2014 16:58:01 +0000 (08:58 -0800)]
Pass `-C prefer-dynamic` for dylib dependencies

9 years agoFix a tidy issue with src/bin/cargo.rs
Alex Crichton [Thu, 6 Nov 2014 16:56:34 +0000 (08:56 -0800)]
Fix a tidy issue with src/bin/cargo.rs

9 years agoMerge branch 'args' of https://github.com/ebfe/cargo into update
Alex Crichton [Thu, 6 Nov 2014 16:50:51 +0000 (08:50 -0800)]
Merge branch 'args' of https://github.com/ebfe/cargo into update

9 years agoMerge branch 'add-did-you-mean' of https://github.com/pwoolcoc/cargo into update
Alex Crichton [Thu, 6 Nov 2014 16:49:16 +0000 (08:49 -0800)]
Merge branch 'add-did-you-mean' of https://github.com/pwoolcoc/cargo into update

9 years agoMerge branch 'fix-build-auth-test.rs' of https://github.com/pwoolcoc/cargo into update
Alex Crichton [Thu, 6 Nov 2014 16:45:58 +0000 (08:45 -0800)]
Merge branch 'fix-build-auth-test.rs' of https://github.com/pwoolcoc/cargo into update

9 years agoAdd 'did you mean...' message when a subcommand is not found.
Paul Woolcock [Thu, 6 Nov 2014 02:05:01 +0000 (21:05 -0500)]
Add 'did you mean...' message when a subcommand is not found.

9 years agoupdate rust-encoding
Steve Klabnik [Thu, 6 Nov 2014 13:19:30 +0000 (08:19 -0500)]
update rust-encoding

https://github.com/alexcrichton/toml-rs/pull/28 also needs to be in here to truly fix the build

9 years agoTcpListener::bind now takes 1 argument instead of 2
Paul Woolcock [Thu, 6 Nov 2014 13:08:38 +0000 (08:08 -0500)]
TcpListener::bind now takes 1 argument instead of 2

9 years agoFix infinite recursion when invoked without args
Michael Gehring [Thu, 6 Nov 2014 09:22:14 +0000 (10:22 +0100)]
Fix infinite recursion when invoked without args

9 years agoauto merge of #799 : alexcrichton/cargo/moar-parallel, r=brson
bors [Thu, 6 Nov 2014 00:02:30 +0000 (00:02 +0000)]
auto merge of #799 : alexcrichton/cargo/moar-parallel, r=brson

When building unit tests for a library, we don't need the library itself to be
built beforehand, so the two can be built in parallel. If the crate takes awhile
to compile, this shows some excellent wall-time speedups.

9 years agoauto merge of #804 : alexcrichton/cargo/moar-fixes, r=alexcrichton
bors [Wed, 5 Nov 2014 23:43:18 +0000 (23:43 +0000)]
auto merge of #804 : alexcrichton/cargo/moar-fixes, r=alexcrichton

Some flaky test improvements as well as some updates to the styling of the docs.

9 years agoFix up some styling on the build-script docs
Alex Crichton [Wed, 5 Nov 2014 23:14:30 +0000 (15:14 -0800)]
Fix up some styling on the build-script docs

9 years agoFix some more flaky tests
Alex Crichton [Wed, 5 Nov 2014 23:06:06 +0000 (15:06 -0800)]
Fix some more flaky tests

At the same time, also improve the deprecation message for the old build command
to be a little more descriptive about how to migrate

9 years agoauto merge of #802 : alexcrichton/cargo/issue-801, r=brson
bors [Wed, 5 Nov 2014 23:02:41 +0000 (23:02 +0000)]
auto merge of #802 : alexcrichton/cargo/issue-801, r=brson

Previously all features were traversed when adding information to the lockfile,
but the traversal forgot to add optional dependencies that did not have a
corresponding feature.

Closes #801

9 years agoauto merge of #803 : alexcrichton/cargo/fix-some-tests, r=alexcrichton
bors [Wed, 5 Nov 2014 22:35:35 +0000 (22:35 +0000)]
auto merge of #803 : alexcrichton/cargo/fix-some-tests, r=alexcrichton

Right now we're accidentally not actually leveraging this function well in some
tests due to this sequence of events:

1. The tests run at time X, building artifacts that remember the fingerprint is
   at time X.
2. The entire project is moved back one hour to (X-1).
3. A new file is created, at time X (second-level resolution on some systems).
4. On a rebuild, the maximum mtime is still X (due to the new file).

For this reason there are some more calls to move_into_the_past() to push files
back another hour after they've been created to make sure the maximum mtime is
(X-1), or something different than X.

9 years agoMore aggresively move_into_the_past for tests
Alex Crichton [Wed, 5 Nov 2014 22:00:38 +0000 (14:00 -0800)]
More aggresively move_into_the_past for tests

Right now we're accidentally not actually leveraging this function well in some
tests due to this sequence of events:

1. The tests run at time X, building artifacts that remember the fingerprint is
   at time X.
2. The entire project is moved back one hour to (X-1).
3. A new file is created, at time X (second-level resolution on some systems).
4. On a rebuild, the maximum mtime is still X (due to the new file).

For this reason there are some more calls to move_into_the_past() to push files
back another hour after they've been created to make sure the maximum mtime is
(X-1), or something different than X.

9 years agoBuild lib tests and libraries in parallel
Alex Crichton [Wed, 5 Nov 2014 03:40:06 +0000 (19:40 -0800)]
Build lib tests and libraries in parallel

When building unit tests for a library, we don't need the library itself to be
built beforehand, so the two can be built in parallel. If the crate takes awhile
to compile, this shows some excellent wall-time speedups.

9 years agoauto merge of #792 : alexcrichton/cargo/build-cmd, r=brson
bors [Wed, 5 Nov 2014 21:13:08 +0000 (21:13 +0000)]
auto merge of #792 : alexcrichton/cargo/build-cmd, r=brson

This series of commits (based on https://github.com/rust-lang/cargo/pull/763) is an implementation of the recent [Cargo RFC](https://github.com/rust-lang/rfcs/blob/master/text/0403-cargo-build-command.md). This should implement all portions of the RFC, but there's a lot so an extra set of eyes would be nice!

I haven't added documentation for it all yet, but I would like to do so before landing (starting with https://github.com/rust-lang/cargo/pull/749). Otherwise I've been migrating all of the existing cargo dependencies away from the build command to a build script, and the progress can be seen with these repositories:

* https://github.com/alexcrichton/gcc-rs
* https://github.com/alexcrichton/pkg-config-rs
* https://github.com/alexcrichton/git2-rs/tree/build-cmd
* https://github.com/alexcrichton/openssl-sys
* https://github.com/alexcrichton/flate2-rs/tree/build-cmd
* https://github.com/alexcrichton/libz-sys
* https://github.com/alexcrichton/ssh2-rs/tree/build-cmd

I haven't quite gotten around to curl just yet, but it's next on my list!

9 years agoFix custom build tests on windows
Alex Crichton [Wed, 5 Nov 2014 20:28:00 +0000 (12:28 -0800)]
Fix custom build tests on windows