Announcement

Collapse
No announcement yet.

X.Org Server's Meson Build System Almost To Feature Parity With Autotools

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

  • #11
    Originally posted by cen1 View Post
    Big mistake not going with CMake.
    CMake has it's fair share of issues you know. CMake cross-toolchain support is so lackluster, it's practically a no-mans-land when cross-compiling is a must. What variables are defined for host or target isn't well defined in CMake and the documentation for it is just garbage and sometimes wrong.

    Despite requests for sub-project support for years in CMake, the team just doesn't care to explicitly support it, leading to half-baked solutions like DownloadProject or ExternalProject. Meson tried to solve this from the get-go with their subproject command which actually feels practical (though it still has some limitations and of course still requires a meson script for the sub-project).

    Meson is also closer to autotools as far as the API is concerned which the people from X.org and gang are probably far more familiar with. It does lack a lot of the maturity cruft of autotools has though but that's probably mostly intentional.

    I'll also note that people seem to think that Meson uses python as its scripting language. Not the case... it uses a weird subset that looks somewhat like python but lacks anywhere near the full power of python. For instance, you can't define your own functions in the Meson scripting language and templated strings aren't available. I will say that coming from CMake, virtually any language is a welcome sight but it is a little odd.

    EDIT: From a practical point of view, meson is very usable. It can do anything CMake can do right now and then some. I don't know if not using cmake is a mistake but using meson probably isn't a mistake.
    Last edited by computerquip; 28 March 2018, 02:47 AM.

    Comment


    • #12
      Originally posted by TingPing View Post

      It is a very simple language, using templates you have a starting point in one command
      Code:
      meson init --language=c --name=myproject --version=0.1
      Beyond that reference gets you most places IME: http://mesonbuild.com/Reference-manual.html
      A one-line command being a good starting point is irrelevant, that's not how you use build systems.

      And the reference does not get you most places. I hear this opinion a lot, and I couldn't disagree more. It has a small number of very specific examples that are hard to extrapolate into other use cases.

      The Arch wiki is an example of good documentation, the Meson Reference is just barely a introduction to the technology.

      Comment


      • #13
        Originally posted by kaprikawn View Post

        A one-line command being a good starting point is irrelevant, that's not how you use build systems.

        And the reference does not get you most places. I hear this opinion a lot, and I couldn't disagree more. It has a small number of very specific examples that are hard to extrapolate into other use cases.

        The Arch wiki is an example of good documentation, the Meson Reference is just barely a introduction to the technology.
        Indeed, I had to read the meson source code to figure out what I wanted and why it was broken. Left it at that a couple of months back.

        Comment

        Working...
        X