4 ms·
Bazel is almost a standard for build systems at this point. Did you ever use it, or at least see what a bazel build rule looks like [1] before calling it arcan
by halflings 7y ago
Bazel is almost a standard for build systems at this point.
Did you ever use it, or at least see what a bazel build rule looks like [1] before calling it arcane?
[1] https://docs.bazel.build/versions/1.0.0/tutorial/cpp.html#understand-the-build-file https://docs.bazel.build/versions/1.0.0/tutorial/cpp.html#un...
- alrs 7y agoBazel has yet to even land in Debian, it's some years short of being the standard.
- pja 7y agoBuild rules for bazel are straightforward when you’re on the happy path & trying to do something that bazel already understands. It’s when you’re not on the happy path that things get awkward. E.g. How easy is it to integrate a new C++ compiler into bazel? (and I don’t just mean what you get by changing CC to point somewhere else. I want the full integration with the bazel build system in order to get those hermetic builds that are the whole point of using bazel in the first place). How easy is it to build things which are not in the set of blessed languages? What if I have a Haskell component? Can I easily integrate that into my bazel build? Last time I tried the answer was definitely not. If you can use the pre-defined BUILD rules then bazel is pretty great. If you can’t and have to start wading into the weeds of bazel’s hinterland then it rapidly stops being so. If you’re inside Google, then you’re probably fine because a blaze/bazel engineer is ultimately only an email away. For the rest of us outside the Googleplex, extending bazel is an extended exercise in frustration in my experience.
- ondrasej 7y agoThere's genrule() which basically runs a shell script. With that, you can build anything for which you can write a command-line. And you can go as far as invoke a binary that is built by another bazel rule. You can also define your own rules in a subset of Python (by wrapping other rules including genrule()), so adding new languages should be simple enough.
- pja 7y agoBased on my experience with bazel the phrase “should be simple enough” is doing an awful lot of work in that sentence ;) It’s just a SMOP, right?
- jcelerier 7y ago> Bazel is almost a standard for build systems at this point. what a standard, used by a whopping 2% of the C++ community : https://www.jetbrains.com/lp/devecosystem-2019/cpp/ https://www.jetbrains.com/lp/devecosystem-2019/cpp/
- RayDonnelly 7y agoBazel is the bane of every software packager who needs to use it and who does not work for Google. GN (or whatever it's actually called) is a close second in terms of horridness and NIH-ness, then GYP (and depot_tools too, may as well chuck that in there). Guess which company foisted all this on us?
- pnako 7y agoI think it's THE standard. Almost all teams at Google use it. It's just the few people outside of Google who are still using legacy tools.