53 Commits

Author SHA1 Message Date
Alex Crichton
662b8553d6 Fix some tests 2014-07-10 12:51:13 -07:00
Michael Gehring
139e81ea82 ToStr::to_str -> ToString::to_string
Conflicts:
	src/cargo/core/resolver.rs
	src/cargo/ops/cargo_rustc.rs
2014-07-10 08:37:57 -07:00
Yehuda Katz
215ae2f9a1 Remove hardcoding 2014-07-10 01:26:51 -07:00
Yehuda Katz
7eb5ea543d Fixed a number of bugs related to rustc building
Most notably, `resolve` now takes the root, so it can properly link the
root package with its dependencies (which is required to build the
--externs for the root package).
2014-07-10 00:27:40 -07:00
Yehuda Katz + Carl Lerche
e143491356 Resolve more correctly and add --extern
This commit adds support for passing --extern to dependencies. It allows
multiple copies of the same named dependency in the system, as long as
they come from different repos.
2014-07-09 20:17:08 -07:00
Alex Crichton
558e75347e Fix --release not compiling upstream deps with -O3
This touches up the filtering logic to ensure that upstream dependencies as well
as local dependencies are built with optimizations when `cargo build --release`
is used.
2014-07-09 13:55:00 -07:00
bors
a6061db0d0 auto merge of #142 : rust-lang/cargo/new-names, r=alexcrichton
This PR moves Cargo over to the new naming based on [RFC 35](https://github.com/rust-lang/rfcs/blob/master/complete/0035-remove-crate-id.md).

* You should no longer use `#[crate_name]` or `#[crate_id]` in any crate managed by Cargo.
* You no longer need a `[[lib]]` section in your `Cargo.toml` if you name your library `src/lib.rs`.
* You no longer need a `[[bin]]` section in your `Cargo.toml` if you name your library `src/main.rs`.
* You can include multiple `[[bins]]` in `src/bin/*.rs` and Cargo will treat them as if they were specified via `[[bin]]`.

This commit does not yet add support for `-C metadata` or `-C extra-file-name`, but that is coming soon.
2014-07-08 06:14:56 +00:00
Yehuda Katz + Carl Lerche
ee1a81a801 This updates Cargo for #[crate_name] 2014-07-07 21:42:34 -07:00
Alex Crichton
03ccdd8169 Warn about missing [[lib]] and [[bin]] sections
Closes #120
2014-07-07 20:59:47 -07:00
bors
6248ebe5b2 auto merge of #139 : tomjakubowski/cargo/fix-symlink-blowup, r=alexcrichton
Fingerprinting will fail at an `fs::stat()` call if there is a symlink in
a package's directory pointing to a non-existent file or directory.
This commit recovers from an `fs::stat(`) error on these bogus symlinks by
faking an mtime of 0, which should not affect the overall fingerprint.

Fix #135
2014-07-08 01:46:02 +00:00
Tom Jakubowski
94ba70881d Ignore the broken symlinks test on windows 2014-07-07 18:42:53 -07:00
Tom Jakubowski
f488174208 fingerprint: Recover from fs::stat errors
Fingerprinting will fail at an fs::stat() call if there is a broken
symlink in a package's directory.  This commit recovers from fs::stat()
errors on broken symlinks by treating them as having mtime 0, which
should not affect the overall fingerprint.

Fix #135
2014-07-07 15:33:40 -07:00
bors
d0ac39d40b auto merge of #140 : rust-lang/cargo/release, r=carllerche 2014-07-07 22:29:56 +00:00
Yehuda Katz + Carl Lerche
a1980dc78b Add --release and related refactoring 2014-07-07 15:17:34 -07:00
Tomaka17
c545221c25 Support for multiple and cleaner build commands 2014-07-07 22:12:26 +02:00
Alex Crichton
71e4252a90 Don't infinitely recurse on cyclic path deps
Instead, keep a table of what we've visited and halt recursion whenever we
re-visit a package.

Closes #77
2014-06-30 13:18:14 -07:00
Alex Crichton
a2aa2bf938 Warn about unused TOML keys
Closes #27
2014-06-28 15:18:44 -07:00
Tim Carey-Smith
13eb123213 Add cargo test 2014-06-26 16:47:27 -07:00
Alex Crichton
80a81334f6 Fix lots of windows tests
* Add a convenience method bin() for generating the name of a binary. On windows
  this remembers to append `.exe`.

* Stop executing relative paths to binaries and relying on PATH. This is
  suffering from rust-lang/rust#15149 and failing to spawn processes on windows.
  Additionally, this allows the tests to work with a pre-installed cargo becuase
  the freshly built executables are precisely specified.

* A new function, escape_path(), was added for tests. When generated source
  files with paths, this function needs to be called to properly escape the
  \-character that appears in windows path names. Without this function we would
  be generating invalid TOML and rust.
2014-06-25 11:15:04 -07:00
Huon Wilson
9514dafd0e Handle misformatted versions with a nicer error message. 2014-06-25 18:05:51 +10:00
Alex Crichton
352efa73b5 Work around \-characters on Windows for now 2014-06-23 22:42:10 -07:00
Yehuda Katz
eb6b0d6281 Rename cargo-compile to cargo-build 2014-06-23 19:09:12 -07:00
Yehuda Katz
86b2a2a432 Support [package] or [project]
The plan is to free up [project] for simpler config plus output flags
like -O that don't make sense in packages.
2014-06-23 16:57:27 -07:00
Alex Crichton
d4265ef2a0 Move from rust-toml to toml-rs
This commit should greatly improve all error messages related to decoding
Cargo.toml.
2014-06-23 11:38:53 -07:00
Yehuda Katz
19bea0ad0c Thread the shell through more of the system 2014-06-21 22:22:56 -07:00
Yehuda Katz
687035657d Terminal colors 2014-06-21 18:53:07 -07:00
Alex Crichton
e05b4dc838 Don't rebuild dependencies if they haven't changed
This commit adds support for recognizing "fingerprints" of upstream
dependencies. When a dependency's fingerprint change, it must be rebuilt.
Currently the fingerprint unconditionally includes the version of the compiler
you're using as well as a specialized version depending on the type of source
you're compiling from:

  - git sources return their fingerprint as the current SHA. This will
    disregard any local changes.
  - path sources return their fingerprint as the maximum mtime of any file found
    at the location. This is a little too coarse and may rebuild packages too
    often (due to sub-packages), but this should get the job done for now.

When executing `cargo compile`, dependencies are not rebuilt if their
fingerprint remained constant.
2014-06-19 21:55:37 -07:00
Alex Crichton
bc1dea82c8 Invoke rustc only once for multiple crate types 2014-06-19 19:44:45 -07:00
Alex Crichton
64ff29ff86 Update to rust style guidelines
* 80 char line limit highly recommended
* /// and //! for doc comments
2014-06-19 17:02:21 -07:00
Alex Crichton
3433a01eba Allow custom precompile commands
This commit enables support for custom precompilation commands to be triggered
before a package builds via rustc. The current interface is to have
`build = "foo"` in the `[project]` section of Cargo.toml and cargo will just
execute the exact command given.
2014-06-19 11:52:51 -07:00
Yehuda Katz
8c72add4f5 Squelch warnings and minor cleanup 2014-06-19 01:21:24 -07:00
Yehuda Katz
3e09f70259 Initial pass at boxed errors
The next step is to clean up the error handling in general so that
failure cases produce good errors.
2014-06-19 00:57:12 -07:00
Carl Lerche + Yehuda Katz
35e21c7600 Smoke test for git support 2014-06-12 15:51:16 -07:00
Yehuda Katz + Carl Lerche
51c9cf0f87 Sources are now an array 2014-06-11 15:59:18 -07:00
Yehuda Katz + Carl Lerche
c57fef459a Add namespace to PackageId 2014-06-11 14:51:13 -07:00
Yehuda Katz + Carl Lerche
92602f6db0 Add support for detailed manifest dependencies
This commit supports the following format:

```toml
[dependencies.hamcrest]

version = "1.0"
git = "http://github.com/carllerche/hamcrest-rust"
```
2014-06-09 17:51:53 -07:00
Yehuda Katz + Carl Lerche
9a1c63ea17 Track master for tests 2014-06-09 13:08:09 -07:00
Yehuda Katz
41b6f52681 Tests passing again 2014-05-29 14:31:09 -07:00
Yehuda Katz
e42203f7f6 Up to date with master 2014-05-29 14:06:43 -07:00
Yehuda Katz
edbe491003 Up to date with master 2014-05-29 13:57:31 -07:00
Carl Lerche
7e6433feda Track rust master 2014-05-27 16:14:34 -07:00
Yehuda Katz
21322f07b4 Wrote more integration tests for cargo compile
At the moment, the rustc exec for the root project inherits the stdout
and stderr FDs (so that warnings and errors flow through), but
output from dependencies is only emitted if the compilation fails to
avoid warning noise from dependencies.
2014-05-12 17:33:13 -07:00
Yehuda Katz
b8621c5042 More tests for error cases in compile
Also some refactoring of the error structure. More cleanup work around
human-readable and CLI errors is still required.
2014-05-09 16:57:13 -07:00
Yehuda Katz
7983a5fd16 Clean up process DSL in tests 2014-05-08 17:50:58 -07:00
Yehuda Katz
48dc081419 Get nested dependencies working 2014-05-08 16:50:53 -07:00
Yehuda Katz
682d4e94c8 Get compile test passing 2014-05-08 13:33:04 -07:00
Carl Lerche
1ce7641593 Core struct refactor 2014-05-05 21:54:49 -07:00
Carl Lerche
8842b02cfd Cleanup ProcessBuilder, work towards getting tests passing 2014-05-05 16:28:01 -07:00
Carl Lerche
f4d6d02135 Beginnings of a dependency resolver 2014-04-11 15:11:10 -07:00
Carl Lerche
db92e67c87 Track rust master 2014-04-09 13:28:10 -07:00