3 ms·
There's certainly a place for invoking each project's build tool and stringing together the resultant packages into a tarball, docker image, or nix package. CMa
by weberc2 9y ago
There's certainly a place for invoking each project's build tool and stringing together the resultant packages into a tarball, docker image, or nix package. CMake doesn't do this; it gives you a (shitty--for reasons mentioned in other posts) framework for building an ad-hoc build tool for your project, never mind that 99% of projects in any language could be built the same way (which would minimize maintenance work and learning curve).
- lomnakkus 9y agoYes, but "stringing together" == "non-parallelism" | "unmaintainable because shell scripts". This can kill projects. I'm not even joking. EDIT: Again, I'm not saying CMake is perfect, but then you haven't offered anything better, so... NYAH? Do you have something better? It's easy to complain about build systems (I do it all the time), but not so easy to come up with something better. Btw, have we dispatched the single-language assumption at this point? (Because, unless "your" language is C or C++, it's not going to happen unless POSIX is miraculously displaced).
- weberc2 9y agoThere's nothing about invoking build tools that precludes concurrent builds or which requires ad hoc shell scripts (although "unmaintainable scripts" is an ironic defense of CMake, since it's subject to all the same criticisms). Alternate solutions include Docker, Nix, or even plain makefiles depending on what your artifact needs to be. Posix is unrelated to invoking multiple build tools and assembling their results.