Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adwaith-rajesh/buildme
Yep, It's another build system
https://github.com/adwaith-rajesh/buildme
build-system build-tool python-3
Last synced: 1 day ago
JSON representation
Yep, It's another build system
- Host: GitHub
- URL: https://github.com/adwaith-rajesh/buildme
- Owner: Adwaith-Rajesh
- License: mit
- Created: 2023-08-30T13:39:22.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-31T15:03:11.000Z (about 1 year ago)
- Last Synced: 2024-10-05T06:49:26.652Z (about 1 month ago)
- Topics: build-system, build-tool, python-3
- Language: Python
- Homepage:
- Size: 51.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BuildMe π οΈ
Another build system. A simple command runner thats it.
# What is BuildMe π€οΈ
Well this pretty much sums it up.
![xkcd comic](https://imgs.xkcd.com/comics/standards.png)
# Why???
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 BSIt 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.# Docs π§ΎοΈ
- Install buildme
```console
pip3 install git+https://github.com/Adwaith-Rajesh/buildme.git
OR
pip3 install buildme
```- Create a `buildme` script
> The shebang is IMPORTANT (This thingy -> #!/bin/env buildme)```python
#!/bin/env buildme
from buildme import CommandRunner, targetcr = 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
```console
$ ./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](/docs/buildme.md)
- [Buildme](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#buildme-scripts)
- [Target](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#target)
- [Creating a target](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#creating-a-target)
- [Target depending on another target](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#target-depending-on-another-target)
- [Target depending on files](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#target-depending-on-files)
- [Targets that creates files](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#targets-that-creates-files)
- [CommandRunner](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#commandrunner)
- [Receiving Command line args](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#receiving-command-line-args)
- [Getting info about the target itself](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#getting-info-about-the-target-itself)
- [Dynamic 'creates'](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#dynamic-creates)
- [Combining Ideas](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#the-above-two-ides-can-combined-to-do-this)
- [Helper functions](https://github.com/Adwaith-Rajesh/buildme/blob/master/docs/buildme.md#helper-functions)# Bye....