build2
samurai
build2 | samurai | |
---|---|---|
5 | 10 | |
543 | 802 | |
1.1% | - | |
9.2 | 3.2 | |
8 days ago | 10 days ago | |
C++ | C | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
build2
-
b2 for C++?
Yes, this is a common stumbling block for users with the CMake background. The underlying reason is that build2 is a "multi-repo first" build system while CMake is "mono-repo first" (or perhaps even "mono-repo only"; I don't think there were repositories as we know them when Autotools was designed ;-)). In particular, in build2 it's common to build multiple independent projects/repositories in a shared build configuration. Putting this build configuration as a subdirectory of source directory of one of them would be strange. You can read more on this in this issue: https://github.com/build2/build2/issues/187
-
build2 IDE support?
build2 can generate Clang compilation database (currently indirectly): https://github.com/build2/build2/issues/96 I believe quite a few IDEs (including CLion) can work off that.
-
Debian Running on Rust Coreutils
Yes, please, that would be very helpful: https://github.com/build2/build2/issues
samurai
- Samurai: Ninja-compatible build tool written in C
- Oasis – a small, statically-linked Linux system
-
Ninja is enough build system
Samurai is a faster, drop-in replacement for ninja.
https://github.com/michaelforney/samurai
- samurai: Ninja-compatible build tool written in C
-
Using Landlock to Sandbox GNU Make
"If you want to do what "scrappy Google" did these days, then you should use Python + Ninja."
Or, better yet, use a simpler, faster and more portable^1 Ninja written in C.
https://github.com/michaelforney/samurai
1. The "simpler, faster, and more portable", are the author's claims, not mine. I am not the author.
- samurai: a ninja-compatible build tool written in C.
-
Moving SciPy to the Meson Build System
Why is Python not portable, as in, on which systems is "build Python and then use that to run Meson" not a reasonable option?
The CI for boson seems like it runs on platforms where Python definitely is available, but also I notice the CI uses samurai, a reimplementation of ninja with a similar motivation: https://github.com/michaelforney/samurai
Ninja is in C++ so I am even more confused at Sanurai.
Is this just an implementation-diversity thing? (which is great!)
-
xorg sucks, use swc
This means ninja is popular both on embedded for its tiny footprint (samurai is about 3k sloc and portable), and for humongous projects like Chrome, because it is infinitely scalable in complexity due to its genaration method.
-
Debian Running on Rust Coreutils
You could probably post-process samurai (a rewrite of ninja into C) into a single-file: https://github.com/michaelforney/samurai
What are some alternatives?
embedded-graphics - A no_std graphics library for embedded applications
stm32-cube-cmake-vscode - STM32, VSCode and CMake detailed tutorial
BSDCoreUtils - BSD coreutils is a port of many utilities from BSD to Linux and macOS.
vivarium - A dynamic tiling Wayland compositor using wlroots
fancy-regex - Rust library for regular expressions using "fancy" features like look-around and backreferences
Microsoft Research Detours Package - Detours is a software package for monitoring and instrumenting API calls on Windows. It is distributed in source code form.
shake - Shake build system
dwm - LEV Linux's window manager (a fork of dwm)
coreutils - Cross-platform Rust rewrite of the GNU coreutils
Rust-for-Linux - Adding support for the Rust language to the Linux kernel.
fab-rs - The fabulous, aspirationally Make-compatible, fabricator of files.
velox - velox window manager