whip-up
is a build system with strong typing. .whip
files are effectively arbitrary rust code*.
whip-up
..whip file ``` let gpp = Compiler { path: PathBuf::from("/usr/bin/g++"), };
let exampleprogram = Target { name: "exampleprogram", compiler: gpp, files: vec![ PathBuf::from("main.cpp"), PathBuf::from("foo/bar.hpp") ] };
example_program.build()
```
Output g++ command which gets run
/usr/bin/g++ -o example_project main.cpp foo/bar.hpp
Say we have the following folder structure and a .whip file with the same contents as the example above.
projects/
|
└─── examples/
|
└─── foo/
| └─── bar.hpp
|
| example.whip
└─── main.cpp
Running whip-up examples/
from the projects
folder will result in a binary being built in the examples folder
projects/
|
└─── examples/
|
└─── foo/
| └─── bar.hpp
|
| example.whip
| example_program
└─── main.cpp
I started working on this project during the COVID-19 pandemic. I was bored inside and decided to do something productive.
Currently this project is incredibly bare-bones and rather hacky. It should go without saying, but whip-up
is not recommended for use in production.