Crates.io | whip-up |
lib.rs | whip-up |
version | 0.1.0 |
source | src |
created_at | 2020-03-20 18:41:11.194036 |
updated_at | 2020-03-20 18:41:11.194036 |
description | Build system with strong typing |
homepage | https://github.com/maspe36/whip-up/ |
repository | https://github.com/maspe36/whip-up/ |
max_upload_size | |
id | 220762 |
size | 14,791 |
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 example_program = Target {
name: "example_program",
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.