Announcement

Collapse
No announcement yet.

GTK Lands Meson Build System Support

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

  • #11
    Originally posted by tpruzina View Post

    One big complaint about meson that I have is that it's still too difficult to use as an _user_ who is accustomed to ./configure --prefix=/usr && make && sudo make install (or cmake . && make && sudo make install). For comparable meson install you need to do "meson -C build . && mesonconfig build prefix=/usr && ninja -C build" or something like that. Hopefully they will merge meson config into meson and somebody will write propper autocompletion for parameters and add optional "default builddir".

    As it is right now, I might shave 30 seconds off compilation time of random softwrae with meson, but I spend these 30 seconds remembering and writing command line parameters.
    Same here. I'm no developer, just a guy who prefers building his own software instead of using pre-compiled messages for the kick of it. It took me years to get comfortable with the de-facto toolchain of ./configure --prefix=<stuff>, make and make install. So I'm naturally concerned that Meson will be another tough cookie to get used to, since none of the software I currently build for my personal consumption (Libreoffice, Firefox, Chromium, OpenJDK, etc) use Meson so I can't gain any experience on it as of now.

    Comment


    • #12
      Originally posted by Sonadow View Post
      none of the software I currently build for my personal consumption (Libreoffice, Firefox, Chromium, OpenJDK, etc) use Meson so I can't gain any experience on it as of now.
      It doesn't help that you've named four projects that all have relatively unique builds... none of them fit the simple "./configure && make && make install" model either. From memory, Firefox and Libreoffice do use autotools, albeit not in any standard fashion - but Chromium and OpenJDK both use completely custom build processes...

      Comment


      • #13
        Originally posted by rudregues View Post

        I would like to go back to Gentoo if it wasn't the fucking compile times. Maybe more devs using Meson+Ninja can reduce overall compile time and give me some hope to get back.
        it's not that bad unless you have to build 3 versions of webkit, because different software wants different version. even libreoffice builds faster.

        Comment


        • #14
          Meson is written in Python. Meh.

          Python can be nice for many things, but building infrastructure is not one of them.
          For that, I want as few dependencies as possible.

          Comment


          • #15
            Originally posted by Brane215 View Post
            Meson is written in Python. Meh.

            Python can be nice for many things, but building infrastructure is not one of them.
            For that, I want as few dependencies as possible.
            Not sure what you mean by many dependencies? When I do sudo pip install meson, it just installs Meson without any extra packages. Even on a clean Solus install. So either you're exaggerating or the amount of dependencies depends on the distro.

            Comment


            • #16
              GTK is nice and GTK4 is looking promising. They are removing many deprecated APIs so it will be more streamlined and simpler to learn and use.

              Things I've noticed:
              • Glade is buggy, Glade gets slow (leaks?), Glade crashes.
                • Glade doesn't seem to add CellRenderers to GtkTreeView and GtkEntryCompletion so I end up having to manually edit the XML files and add them myself.
                • Seems to have some bad defaults. GtkBox spacing defaults to 2 but the HIG recommends you to use a spacing of 6.
                • Doesn't support the GtkShortcutsWindow widget.
                • Generates code that is inconsistent with "gtk-builder-tool simplify".
              • The GtkPaned widget is limited to two panes. So if you want a three-pane layout you will have to nest the widgets in weird and ugly non-intuitive hierarchy.
              • The GtkScrolledWindow widget is confusingly named. It is not a window at all. A better name would have been GtkScrolledContainer.
              • The GtkRevealer widget perhaps ought to be removed in favor of just using a CSS animation class on a child of GtkBox.
              • The GtkFileChooserButton widget does not have any property that you can bind with GSettings.
              • Support for hsl() and hsla() for HSL color space in CSS would have been nice. This way you can define a color then programmatically rotate the hue.
              • Gdk.RGBA.parse() does not parse HSL and HSLA.
              • The XML parser (glib-compile-resources) doesn't support file inclusion. So you end up with big monolithic XML files. It would be nice to be able to move out parts of the XML into separate XML files then get them included. Example headerbar, menubar, statusbar, maybe each Stack in a GtkStack or each page in a GtkNotebook. I guess you could do this yourself with some XML preprocessor though.
              • GtkTemplate is supported in Vala but to use it in Python you would have to use the third-party gi_composite package. It is not part of GObject Introspection (GI).




              Overall it is a nice widget toolkit. GSettings have two-way property binding to widgets which is really cool. I wish there were a GI binding for .NET Core.
              Last edited by uid313; 04 May 2017, 05:42 AM.

              Comment


              • #17
                Originally posted by Vistaus View Post

                Not sure what you mean by many dependencies? When I do sudo pip install meson, it just installs Meson without any extra packages. Even on a clean Solus install. So either you're exaggerating or the amount of dependencies depends on the distro.
                It means that if I fuck up python build or any underlying libraries and other dependencies, I'm screwed.

                Comment


                • #18
                  Originally posted by Redfoxmoon View Post
                  My main concern with meson is that (easy and painless) cross compiling is going out the door, since, only autotools has anything of the sort...
                  Not really. Ostensibly, cross-compilation with Meson is even easier. Instead of creating a shell script with a bunch of environment/m4/make variables to inject into the build, you get a key/value pairs plain text file. See the documentation: http://mesonbuild.com/Cross-compilation.html — and here's a simple configuration file I did for Graphene in order to cross-compile with Mingw64 on Fedora: https://github.com/ebassi/graphene/b...ra-mingw64.txt

                  Comment


                  • #19
                    Originally posted by Brane215 View Post

                    It means that if I fuck up python build or any underlying libraries and other dependencies, I'm screwed.
                    And that is different than any other software in history...how exactly?

                    Comment


                    • #20
                      Originally posted by TheBlackCat View Post

                      And that is different than any other software in history...how exactly?
                      Exactly, for example, through having non-bazillion dependencies. Autotools need just basic tools set and m4. Cmake is also quite frugal in that regard.

                      II have quite a few packages that refuse to run because they don't like my python version etc etc.

                      Comment

                      Working...
                      X