-
> This tiny little implementation[0] in Python!
345 lines of well-commented Python. Cute as a button! It doesn't seem to re-use already-built files, though.
I wonder how many lines that would add. I actually have a bit of Python in my build pipeline that basically just goes `if os.path.getmtime(src) > os.path.getmtime(target)` and it works fine (and took far less effort than trying to shoehorn that build step into my Makefile).
[0] https://github.com/gkbrk/scripts/blob/master/ninja.py
-
AppSignal
AppSignal knows why the f*#k it crashed. Stop vibe-debugging. Every exception, every backtrace, grouped so you see patterns, not noise.
-
Samurai is a faster, drop-in replacement for ninja.
https://github.com/michaelforney/samurai
-
Another interesting implementation is Shake: https://shakebuild.com/
It is technically a Haskell DSL, but supports Ninja files, time estimates and has tools for linting and profiling.
-
I put it all together here: https://github.com/tekknolagi/ninja-demo