https://github.com/maspe36/whip-up
https://github.com/maspe36/whip-up
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/maspe36/whip-up
- Owner: maspe36
- License: bsd-3-clause
- Created: 2020-03-20T18:16:15.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-04-12T14:58:00.000Z (about 6 years ago)
- Last Synced: 2025-05-19T10:08:31.524Z (about 1 year ago)
- Language: Rust
- Size: 12.7 KB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# whip-up
```whip-up``` is a build system with strong typing. ```.whip``` files are effectively arbitrary rust code*.
* = With the exception of the Compiler and Target struct. Which are part of the internals of ```whip-up```.
## Example
**.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
```
## Usage
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
```
## About
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.