Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ticki/cake
A Delicious Build Tool.
https://github.com/ticki/cake
Last synced: about 2 months ago
JSON representation
A Delicious Build Tool.
- Host: GitHub
- URL: https://github.com/ticki/cake
- Owner: ticki
- License: mit
- Created: 2016-04-21T13:58:20.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-09-13T21:32:23.000Z (over 8 years ago)
- Last Synced: 2024-11-15T00:48:54.361Z (2 months ago)
- Language: Rust
- Size: 8.79 KB
- Stars: 64
- Watchers: 7
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
:cake: Cake
===========Cake is a simple, Rustic build tool, which is configured through the advanced macro system of Rust, making it very flexible and expressive.
Features & advantages
---------------------1. A sane and obvious syntax.
2. Fast parallel builds through work-stealing.
3. Ahead of time compilation.
4. Efficient dependency resolution.An example
----------```rust
#[macro_use]
extern crate cake;build! {
start(sodium, libstd) => cmd!("ls"; in "src"),
sodium(libstd, libextra) => println!("yay"),
libstd() => println!("libstd"),
libextra(run) => cmd!("ls"; where LAL = "2"),
run() => println!("check"),
}
```The syntax
----------The build is declared through the `build!` macro, which, when invoked, expands to the main function. The `build!` macro takes a block, containing a match like syntax:
```rust
recipe(dependencies...) => instructions
```The first denotes the name of the build recipe. `dependencies`, delimited by `()` and splited by commas, denotes what build recipe this recipe depends on, i.e., requires to build.
A recipe can be failed by returning `Err(())`, e.g. using `try!()` on a result.
For the extra helper macros, see the rendered docs.