Initial README with some commands sketched out

This commit is contained in:
Carlhuda 2014-03-04 16:06:39 -08:00
parent 227d4e83ef
commit 4de86d2eec
2 changed files with 77 additions and 0 deletions

View file

@ -0,0 +1,73 @@
## Porcelain
### cargo-compile
```
$ cargo compile
```
This command assumes the following directory structure:
```
|Cargo.toml
|~src
| | {main,lib}.rs
|~target
| |~x86_64-apple-darwin
| | |~lib
| | | |~[symlinked dependencies]
| | | | [build artifacts]
| |~...
```
When running `cargo compile`, Cargo runs the following steps:
* `cargo verify --manifest=[location of Cargo.toml]`
* ... TODO: dependency resolution and downloading ...
* `cargo prepare`
* `cargo rustc --out-dir=[from Cargo.toml]/[platform] -L [from Cargo.toml]/[platform]/lib ...`
## Plumbing
### cargo-verify
```
$ cargo verify --manifest=MANIFEST
```
Verifies that the manifest is in the location specified, in a valid
format, and contains all of the required sections.
#### Success
```
{ "success": true }
```
#### Errors
```
{
"invalid": < "not-found" | "invalid-format" >,
"missing-field": [ required-field... ],
"missing-source": bool,
"unwritable-target": bool
}
```
### cargo-rustc
```
$ cargo rustc --out-dir=LOCATION -L LIBDIR -- ...ARGS
```
### cargo-prepare
Prepare the directories (including symlinking dependency libraries) to
be ready for the flags Cargo plans to pass into `rustc`.
## NOTES and OPEN QUESTIONS
* We need to support per-platform calls to `make` (et al) to build
native (mostly C) code. Should this be part of `prepare` or a
different step between `prepare` and `cargo-rustc`.

View file

@ -1,5 +1,7 @@
#[crate_id="cargo-rustc"];
extern crate rustc;
use std::os::args;
use std::io::process::Process;
@ -13,6 +15,8 @@ fn main() {
let mut arguments = args();
arguments.shift();
println!("host: {}", driver::host_triple());
if arguments[0] != ~"--" {
fail!("LOL");
} else {