Initial README with some commands sketched out
authorCarlhuda <wycats+carl@gmail.com>
Wed, 5 Mar 2014 00:06:39 +0000 (16:06 -0800)
committerCarlhuda <wycats+carl@gmail.com>
Wed, 5 Mar 2014 00:06:39 +0000 (16:06 -0800)
README.md
commands/cargo-rustc/main.rs

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4535f0aee7cb11b3cad603a16202ab5c160a210a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -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`.
index 29bdfab4d0ec67a126daea0bca124d173837f3e2..15745a5d625fa5a3e85c3942ccb4f6933980587d 100644 (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 {