1,171 karma · joined February 20, 2007
So ideally you want both ad hoc rules (like make) as well as some king of build system plugin support which allows you to write more complex rules in something more powerful and portable. This is the approach we have taken with build2[1].
Mainline Kernel – work in progress
UBoot – work in progress
UEFI – work in progress
But if anyone has any experience using this board, please share.[2] https://cppget.org/?packages=bash
[3] https://build2.org/build2/doc/build2-build-system-manual.xht...
[1] https://build2.org/build2/doc/build2-build-system-manual.xht...
ld: warning: ignoring file build2/libb.u.a, building for macOS-x86_64 but attempting to link with file built for unknown-unsupported file format
Going to steal that "unknown-unsupported" term for sure.In any case, in build2 this is "handled" by not including headers as "foo.h" but as <libfoo/foo.h>, that is, with the project prefix. You can read more on this here: https://build2.org/build2-toolchain/doc/build2-toolchain-int... And the proper fix will hopefully come with C++20 modules.
To give a specific example, Bazel may prevent you from accidentally using a different version of the compiler while build2 will detect that you are attempting to use a different version.
Regarding caching (and distributed compilation), this is currently on the TODO list though a lot of the infrastructure is already there. For example, the same change detection that is used for high-fidelity builds will be used to decide if what's in the cache is usable in any particular build.
While I agree we should mention these points in the documentation (things are still WIP on that front), I don't think cross-compilation deserves mentioning: for any modern build system it should just work. In build2 we simply implement things in the "cross-compile first" way, with native compilation being a special case (host == target).
If you are wondering why would someone prefer slower/insecure/etc processors from Intel, this would be a good reason; I want to get on with my work rather than debug AMD's processors for them.