Re:Announcing Rust 1.23
by RazrFalcon on Thursday January 04, 2018 @04:14PM
(#16074157)
If we are talking about C++ then the problem is that there a too many build systems and all of them are incompatible.
CMake is quite popular (and maybe most popular) but it's a complete horror in comparison to other build systems, especially for other languages (like Cargo for Rust).
If you need some specific example: try to add a git-based dependency with a specific branch in CMake.
Build systems should be agnostic from source control systems.
The unit of dependencies should be other projects or binary libraries.
I'm not sure about that. If you have dependencies to other internal repositories and to specific revisions, it is not clear who is responsible. Make can be agnostic, but Maven or NPM probably can not.
Maven surely can. You only depend on binary versions of Java libraries, no source code, as it should be.
My first idea would be to use git-submodule and keep CMake ignorant of that.
I made a pull request for some obvious ones that come to mind.
I have blanked out painful memories of cross-compiling protobufs using CMake but will add a description when I can face them.
Well the first thing I saw there was a critique to Ant because of aesthetics, which I'd argue is a pretty weak reason to avoid a technical tool like this.
Most probably, it will make sense to counterargument or discuss some (or most) of the anecdotes that will end up appearing in that document.
Seems a fitting use case for Arguman! (I'm not related at all)
What exactly is annoying about other build systems?
I asked that questions a few times already and I rarely get concrete answers. This time I just started a public document [0]. Contributions welcome!
[0] https://github.com/qznc/annoying-build-systems