Announcement

Collapse
No announcement yet.

Libinput 1.8 Switches To Meson As Its Primary Build System

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

  • Libinput 1.8 Switches To Meson As Its Primary Build System

    Phoronix: Libinput 1.8 Switches To Meson As Its Primary Build System

    Red Hat's Peter Hutterer has announced the first release candidate of the upcoming libinput 1.8 input handling library release that's now widely used by X.Org and Wayland systems...

    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
    Why not CMake though? I know it has some problems, but you can't deny that it has become the de-facto standard for C++ projects in the last few years. Almost every well-known open source C/C++ project has CMake support now, and with the introduction of server-side CMake it will also become a cross-IDE project description format - QtCreator and Visual Studio already has good support for it. (For the curious: server-side CMake is a basically a library which can be used by IDEs to parse and use CMake project files directly - no need to run cmake separately anymore if you use an IDE.)

    The current way to contribute to an open source project usually looks like this: go to GitHub, pull the source, run cmake, make your changes, issue a pull request. The freedesktop projects miss two items from this chain: to issue a pull request you have to use their pull request workflow (which usually means using mailing lists - meh... it's not the 90's anymore), and you have to know how their build system works. Autotools was terrible enough, and while I accept that Meson is superior to it, it's just yet another less known build system which doesn't encourage contribution. Maybe it's just my experience though... I often find myself thinking 'ok, I have some spare time and I would really like to fix this bug/implement this feature to help this project (and myself, since I use it on a daily basis)', but then I go 'it's not on GitHub? it uses some unknown build system? well then, I dont have that much time for it...'.

    Comment


    • #3
      Originally posted by yzsolt View Post
      Why not CMake though?
      CMake is not de-facto standard. It's used a lot by Qt/KDE; there's way more projects than that. The de-facto standard is autotools. Meson apparently works more nicely than both autotools and CMake. As a result: if people didn't like CMake and are on autotools they currently switching to meson.

      You seem to have missed that pretty much every freedesktop project as well as most GNOME projects are switching to meson.

      Comment


      • #4
        I see Meson is picking up steam. As a mostly Java guy, would I gain anything from learning Meson? The reason I'm asking is because I crossed paths with autotools in the past. And it wasn't pretty.

        Comment


        • #5
          Originally posted by bug77 View Post
          I see Meson is picking up steam. As a mostly Java guy, would I gain anything from learning Meson? The reason I'm asking is because I crossed paths with autotools in the past. And it wasn't pretty.
          At the moment, there is only basic support for Java (I guess due to low demand). For more info, you can look on the Meson site (Java)

          Comment


          • #6
            Originally posted by nielsdg View Post

            At the moment, there is only basic support for Java (I guess due to low demand). For more info, you can look on the Meson site (Java)
            I'm not strictly talking about Java, but rather multi-language projects. Java-fist build tools are rather weak in this area. And I'm not taking the "low demand" bait

            Comment


            • #7
              Originally posted by bkor View Post

              CMake is not de-facto standard. It's used a lot by Qt/KDE; there's way more projects than that. The de-facto standard is autotools. Meson apparently works more nicely than both autotools and CMake. As a result: if people didn't like CMake and are on autotools they currently switching to meson.

              You seem to have missed that pretty much every freedesktop project as well as most GNOME projects are switching to meson.
              For cross-platform projects, it is. Just browse GitHub for popular C++ repositories. Nobody messes with .vcxprojs anymore, and autotools is a heavily Linux focused system. That leaves CMake the obvious choice - it is popular, gained a lot of momentum in recent years, and seems like it works for many.

              I know that freedesktop projects are switching to Meson (it was initiated/developed by Gnome folks if I remembery correctly?). I'm just a bit disappointed that it's not a step towards making contribution easier. And I also don't understand that why are the always understaffed open source teams developing even a buildsystem themselves, when there is already a well maintained solution... Honestly it feels like they're suffering from a mild NIH syndrome.

              I'm sure Meson solves all the problems they had with autotools (configuration, performance, etc.). But I'm not so sure that CMake wouldn't be capable of that too. Maybe with a little tweaking, but considering the zero development cost, the good documentation, the good test coverage (lot's of projects using it) and its popularity (=lot's of potential contributors), it may still have been a better choice IMO.

              Comment


              • #8
                Originally posted by yzsolt View Post

                I'm sure Meson solves all the problems they had with autotools (configuration, performance, etc.). But I'm not so sure that CMake wouldn't be capable of that too. Maybe with a little tweaking, but considering the zero development cost, the good documentation, the good test coverage (lot's of projects using it) and its popularity (=lot's of potential contributors), it may still have been a better choice IMO.
                People have different ideas on what the tooling should look like. A lot of consolidation happens over time (Git vs other source code management systems for instance) but for buildsystems, we may not be there yet. I don't think CMake it going to be anything that everyone will settle on. If there is an obvious leader in this space, it will have to evolve organically.

                Comment


                • #9
                  Originally posted by yzsolt View Post
                  (it was initiated/developed by Gnome folks if I remembery correctly?)
                  Nope, it wasn't. Jussi Pakkanen is a CMake user, and created Meson to fix the issues that CMake has — bolted on Turing-completeness of the DSL; obscure error handling; weird and incomplete cross-compilation support; bizarre dependency discovery based on copy-pasting random files; etc.

                  Jussi is on Planet GNOME, and has been invited to speak to GUADEC, but I wouldn't characterise him as a GNOME developer.

                  GNOME maintainers are just picking it up because Meson is clean, lean, and fast, and well-integrated with all the tooling GNOME already uses — internationalisation, code generation, help and API documentation. The option would be to mess around with CMake, which has none of those things and would require writing them from scratch.

                  Comment


                  • #10
                    Originally posted by ebassi View Post

                    Nope, it wasn't. Jussi Pakkanen is a CMake user, and created Meson to fix the issues that CMake has — bolted on Turing-completeness of the DSL; obscure error handling; weird and incomplete cross-compilation support; bizarre dependency discovery based on copy-pasting random files; etc.

                    Jussi is on Planet GNOME, and has been invited to speak to GUADEC, but I wouldn't characterise him as a GNOME developer.

                    GNOME maintainers are just picking it up because Meson is clean, lean, and fast, and well-integrated with all the tooling GNOME already uses — internationalisation, code generation, help and API documentation. The option would be to mess around with CMake, which has none of those things and would require writing them from scratch.
                    To add my two cents: we build Geary using CMake right now but it's probably also going to be converted to Meson in the next release, for all the reasons ebassi mentioned above.

                    Comment

                    Working...
                    X