I have to say this, Rust's cargo beats all C/C++ build systems.
Announcement
Collapse
No announcement yet.
Mesa Developers Move Closer To Dropping Autotools Build System In Favor Of Meson
Collapse
X
-
Originally posted by miabrahams View Post
It's not just about performance. It's simple to use, easy to read and write. Even if Autotools supported Ninja and Meson didn't, I would choose Meson.
- Likes 2
Comment
-
I really never liked autotools. It is basically a sprawling mess.
I would have preferred Mesa choose a standard build system like CMake rather than a niche one but any choice is still better than Autotools.
My problem is that in 10 years, it is likely going to be awkward to run meson itself (because the world would have moved on to Python 4), let alone use it to build Mesa. A build tool written in C or C++ is always more maintainable.
- Likes 2
Comment
-
Originally posted by kpedersen View PostI really never liked autotools. It is basically a sprawling mess.
I would have preferred Mesa choose a standard build system like CMake rather than a niche one but any choice is still better than Autotools.
My problem is that in 10 years, it is likely going to be awkward to run meson itself (because the world would have moved on to Python 4), let alone use it to build Mesa. A build tool written in C or C++ is always more maintainable.
- Likes 2
Comment
-
Originally posted by kpedersen View PostMy problem is that in 10 years, it is likely going to be awkward to run meson itself (because the world would have moved on to Python 4)
- Likes 3
Comment
-
Originally posted by cl333r View PostI have to say this, Rust's cargo beats all C/C++ build systems.
There's no having to learn some random language while also learning an unrelated random build system; nope, with Rust it's all one integrated family that works cross platform. Find a good cross platform editor or IDE and you can work on your project for whatever platform from any OS, any platform.
- Likes 1
Comment
-
Originally posted by miabrahams View Post
Although the Meson build files use a Python inspired syntax, they are not evaluated by the Python interpreter. Porting to Python 4 would be no more of a challenge for Meson than it would be for any other Python package.
At the time when I explored different build systems, the only choice was either to call python scripts (or other languages, but the argument was at that time to use python as this will be available when meson is). Or to get your functionality upstream (which again, is python code).
compare that to CMake or Autotools which use their own scripting languages - those core tools could e re-implemented with any language without any of the custom modules or extensions being affected. With Meson you have to port every functionality, except the DSL files.
My CMake scripts can be butt-ugly but I am sure they will work will the end of time, as CMake is incredible pedantic when it comes to that (see their policies). I am also not sure if Meson will ever support the coming C++ Modules correctly, thats a big question for CMake aswell but Mesons response seems that the standard needs to bow to their needs ( https://github.com/mesonbuild/meson/issues/4314 ).
Just because I could not ask for a clearer statement.
Meson dev (later wrote the "remember the fortran" paper):
The tl/dr version is that the model as currently defined does the same thing as FORTRAN, which is a nightmare to support in a build system.
To give you an idea of the amount of shall we say, nonsense, going on here, we can look at the last "remember the fortran" paper which claims that both:
1) Fortran modules work almost exactly like the proposed CPP modules (which supports my posts), and
2) No one in computer science has discovered how to compile Fortran modules. Absolutely no one. Certainly not CMake, which compiles Fortran modules correctly every time.Last edited by discordian; 04 December 2018, 09:51 AM.
Comment
-
Originally posted by rene View Post
Try cross compiling a package, also it is so amazing, that libinput additionally needs ninja or so, ..! and then you have already to deal wit two annoying build "tools" – plus each build system has other --enable-some-feature option and such. The libinput build is so hilarious now, that I will probably make a dedicated video documenting this mess sometime soon. No wonder that desktop Linux is not progressing, if half of the time is spend re-implementing the build system of each package that already worked for for a decade or more.
- Likes 1
Comment
Comment