Another build system. A simple command runner thats it.
Well this pretty much sums it up.
IDK. I saw this comic and decided that I want a build system of my own.
And,
- Makefile's are shit.
- Cmake is complicated
- Meson requires two dependencies (Meson and Ninja)
- Bazel, corporate BS
It does come with some feature.
- It is just command runner (Does not give an f about the file or it's mod time)
- v0.3.0 onwards, buildme does give an f about the file and it's mod times (times have changed)
- It's just python. Anything that works on python works on buildme script.
- you want a build script that has access to
pandas
, well you can now have it.
- you want a build script that has access to
- Install buildme
pip3 install git+https://github.com/Adwaith-Rajesh/buildme.git
OR
pip3 install buildme
- Create a
buildme
scriptThe shebang is IMPORTANT (This thingy -> #!/bin/env buildme)
#!/bin/env buildme
from buildme import CommandRunner, target
cr = CommandRunner()
@target()
def foo(_, __):
print('This is the foo target')
@target()
def bar(_, __):
cr.run('echo this is from bar target')
@target(depends=['foo', 'bar'])
def all(_, __): pass
- Make it executable
$ ./buildme foo
This is the foo target
$ ./buildme bar
================================================================================
[CMD]: echo this is from bar target
this is from bar target
================================================================================
$ ./buildme all
This is the foo target
================================================================================
[CMD]: echo this is from bar target
this is from bar target
================================================================================
More docs can be found here: Docs