1 unstable release
Uses old Rust 2015
0.1.0 | Sep 13, 2016 |
---|
#17 in #make
8KB
150 lines
🍰 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
- A sane and obvious syntax.
- Fast parallel builds through work-stealing.
- Ahead of time compilation.
- Efficient dependency resolution.
An example
#[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:
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.
Dependencies
~1.5MB
~26K SLoC