Announcement

Collapse
No announcement yet.

Meson Build System Prepares For Growth

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

  • Meson Build System Prepares For Growth

    Phoronix: Meson Build System Prepares For Growth

    Jussi Pakkanen of the Meson Build System has issued a project status report following more projects like X.Org and Mesa exploring Meson...

    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
    Is it just me, or are there echoes of CVS (autotools) being superseded by the designed-to-be-better-than-CVS SVN (cmake) only to ultimately be replaced by Git (Meson)?

    Comment


    • #3
      Originally posted by ermo View Post
      Is it just me, or are there echoes of CVS (autotools) being superseded by the designed-to-be-better-than-CVS SVN (cmake) only to ultimately be replaced by Git (Meson)?
      Not really. I mean, the entire history of software development is new and better solutions replacing older ones.

      But if anything the switch from SVN -> GIT was the fundamental one by going to a distributed model, while CVS->SVN was a simple upgrade.

      In this case, autotools -> cmake is the big jump, because cmake can then target multiple build systems such as make, Visual Studio, etc. Meson is similar, so a smaller jump.

      Comment


      • #4
        Other differences :

        - Autotools use a very obscure "M4" macro language, with a very steep learning curve. Usually you don't start customizing autotools without getting a ton of experience first.
        - CMake tried to be as simple as possible with the syntax of their cmakefiles as accessible as possible.
        - Meson similarly tries to be as accessible as possible (using python derivative, if I remember correctly)

        - Autotools compiles down to shell scripts, meaning that any decent POSIX system could start right away compiling a source tar ball prepared with autotools.
        (Part of the horrendous complexity and syntax is due to that : it should be able to run on any Unix with a basic shell).
        (As a corollary : It won't on Windows out of the box, by definition. You'd need a POSIX compatbility layer like Cygwin, or a POSIX-ish API mode like WSL and Unix-for-Windows)
        - CMake *needs* a functioning CMake in order to build software (same with Meson). You can't start building right away, you need to get CMake installed first
        (luckily CMake is available in most modern distro) (Also CMake is available on windows, making it possible to also built software there, even if there is no full POSIX compatbility) (though the point of being able to build both on POSIX OSes and on Windows comes with its own layer of weirdness).


        Comment


        • #5
          Originally posted by DrYak View Post

          Autotools use a very obscure "M4" macro language, with a very steep learning curve.
          I don’t know about “obscure” (it’s a basic tool dating from the early Unix days), but I would describe it as “clunky”. Because it lacks a way of saying “treat the next character literally, no matter what it is”, here are some things that just cannot be expressed in it.

          I tried once using it to wrap a sizeable database dump (over 1200 records) to generate bulk INSERT commands for either MySQL or SQLite. It worked, but was painfully slow. Then I looked at the source of GNU m4, and discovered that it was using the standard C null-terminated string routines! No wonder performance was bad.

          Comment

          Working...
          X