Announcement

Collapse
No announcement yet.

Meson 1.0 Build System Released

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Meson 1.0 Build System Released

    Phoronix: Meson 1.0 Build System Released

    As a timely gift to programmers using the speedy and very successful Meson build system, the Meson 1.0 stable release has debuted just in time for Christmas. Besides the holiday, today is also notable in marking ten years to the day since Meson started development...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    I have to say, when I got into programming, I didn't dream build systems would be such complicated beasts.
    And I mean when I got into programming for a living, because my fist lines of code were BASIC, years before that. The build system for BASIC was either hitting Enter or typing RUN <line_number> and then pressing Enter.

    Comment


    • #3
      I remember some stupid comments about autoconf and cmake and all that stuff and how they wouldn't move off it. I was looking at all that when Meson was quite a few numbers back and picked it and am SO glad I have. It's so simple, much faster, and sane to write. And easy to pick together executable, flags, dependencies. Its documentation was lacking then, took me about a day to set it up. But I have been using it since, and it's definitely going to be the only build system I ever use if I can help it. Damn is it easy. CMake seems hugely bloated, makefile was a insane nightmare to say the least, and there's a few more with just...questionable everything.

      I can't wait to need to dig into it again and see all the new features. Mesa moved to it for a reason, any other build system for C/Cpp projects is just insanity honestly.

      Comment


      • #4
        Originally posted by abott View Post
        I remember some stupid comments about autoconf and cmake and all that stuff and how they wouldn't move off it. I was looking at all that when Meson was quite a few numbers back and picked it and am SO glad I have. It's so simple, much faster, and sane to write. And easy to pick together executable, flags, dependencies. Its documentation was lacking then, took me about a day to set it up. But I have been using it since, and it's definitely going to be the only build system I ever use if I can help it. Damn is it easy. CMake seems hugely bloated, makefile was a insane nightmare to say the least, and there's a few more with just...questionable everything.

        I can't wait to need to dig into it again and see all the new features. Mesa moved to it for a reason, any other build system for C/Cpp projects is just insanity honestly.
        cmake isn't that bad developer wise, at least for adding new files/executables/libraries to a project (gotta respect the fact it supports multiple build backends), but it does have one glaring fault and one glaring annoyance (in order):
        • There is no obvious equivalent of ./configure --help (you either have to use the curses/QT UI or read the CMakeLists.txt and the build modules), which is very annoying
        • For whatever reason, all CMake projects I've worked with bundle the modules they use (CMake code that finds pre-installed libraries and whatchamacallits), and many projects do not provide/install said modules (arguably not really CMake's fault but...)
        PD: AFAICT, each of the "big three" config systems have a pretty good advantage as of right now:
        • autotools/GNU: Backwards compatibility platform-wise[1] (pretend and otherwise), cross compiling support, friendliest to the person trying to build the damn thing by hand
        • CMake: Popularity, multiplatform, multiple backends (make, ninja, VisualStudio), sane-ish language
        • meson: sane language, basic end-user backwards compatibility with autotools (I've seen meson generate a configure script that accepted --prefix and --help at the very least), friendly to the person trying to build the damn thing by hand (and yes, I wish I could work with/compile projects that use it)
        [1]: The generated configure scripts are supposed to run in any 90's POSIX-ish OS (and likely some 80's *NIX), however the latest versions are starting to remove backwards-compatiblity cruft. There is little to no backwards/forwards compatibility for the configuration files, however (the inputs to autoconf/automake/etc). CMake isn't much better in this regard, but at least it shouts loud and clear whenever your CMake files are using deprecated stanzas

        Comment


        • #5
          Originally posted by abott View Post
          I remember some stupid comments about autoconf and cmake and all that stuff and how they wouldn't move off it. I was looking at all that when Meson was quite a few numbers back and picked it and am SO glad I have. It's so simple, much faster, and sane to write. And easy to pick together executable, flags, dependencies. Its documentation was lacking then, took me about a day to set it up. But I have been using it since, and it's definitely going to be the only build system I ever use if I can help it. Damn is it easy. CMake seems hugely bloated, makefile was a insane nightmare to say the least, and there's a few more with just...questionable everything.

          I can't wait to need to dig into it again and see all the new features. Mesa moved to it for a reason, any other build system for C/Cpp projects is just insanity honestly.
          A LOT more projects use CMake. With it's use of Python Meson is more bloated. Meson is also quite poor for documentation.

          Comment


          • #6
            Meson love for making build customization easy for even non developers

            Comment


            • #7

              A LOT more projects use CMake. With it's use of Python Meson is more bloated. Meson is also quite poor for documentation.
              you can take a look at muon (https://muon.build/) which is a c99 port of meson, WIP though. There is a windows port which is currently written

              Comment


              • #8
                Originally posted by vtorri View Post

                you can take a look at
                muon (https://muon.build/) which is a c99 port of meson, WIP though. There is a windows port which is currently written
                Awesome. Thanks for pointing it out.

                Comment


                • #9
                  As a non-Meson user, I just wanted to know how is it perceived in the community. Still mixed feelings it seems (I guess as always with something new, Linux users like traditions).

                  From a first glance, it sounds like a definite improvement over CMake (still young though).

                  Comment


                  • #10
                    It's cleaner that cmake but also quite narrow in Focus. If you have a cmake project than cmake is all you need.
                    you can expand cmake with scripts and modules in its own language. With meson you end up with a bunch of shell or python scripts on top, and quite often things then break for crosscompiling or a staged installation without root rights.
                    (So in a way you can port cmake to python and Everything works as before, but porting meson is just the start of your trouble).

                    Last time I checked it still doesn't support transitive usage and build dependencies (you link libb, with needs liba, so you get include/linker flags fir both of them... In cmake only).

                    It's a toy, useful for a buncha Autotools project, not quite anything to replace or compete with cmake.

                    Comment

                    Working...
                    X