[rust-dev] RFC: Future of the Build System

Jan Niklas Hasse jhasse at gmail.com
Fri Jan 10 08:53:56 PST 2014


2014/1/10 Robert Knight <robertknight at gmail.com>
>
> Hello,
>
> CMake does have a few things going for it:
>
> - It is a popular choice for C++ projects, including LLVM, WebKit and
> others, so this would provide familiarity from developers coming from
> C++

Same for scons (Blender, MongoDB) and waf (Samba, node.js).

>
> - As mentioned, it is a meta-build system which can generate project
> files for Xcode, Visual Studio, Ninja and others. This is very useful
> for cross-platform development

I don't think this is useful for Rust itself as these IDEs don't
support Rust anyway and some things won't work (like copying files
around which is currently done in the Makefiles and seems to be hard
if not impossible to do in VC++/Xcode to me).

Some counter arguments for cmake (I haven't worked with many cmake
projects though, so these points are just my personal opinion, sorry
if I'm spreading FUD):

- Some projects [1] include handcrafted VC++ and Xcode project files
anyway, even if using cmake. Looks to me like cmake's generator isn't
worth it.
- To create Makefiles for MinGW you have to use `cmake -G "MinGW
Makefiles"` which I find rather ugly looking (I always have to look it
up).
- CMakeLists.txt often look ugly [2] and don't follow any particular
style (lower case vs. upper case, etc.).
- Using cmake on Windows wasn't as pleasant as scons or autotools
(when working with msys or cmd.exe and not Visual Studio).

I have to admit ccmake is nice though!

[1] https://github.com/slembcke/Chipmunk2D
[2] https://github.com/rougier/freetype-gl/blob/master/CMakeLists.txt


More information about the Rust-dev mailing list