Build system change GTK's master branch
- From: Emmanuele Bassi <ebassi gmail com>
- To: GTK Devel List <gtk-devel-list gnome org>
- Cc: Desktop Development List <desktop-devel-list gnome org>
- Subject: Build system change GTK's master branch
- Date: Mon, 14 Aug 2017 22:46:08 +0100
Hi all;
executive summary: the master branch of GTK+ now builds with Meson,
and the Autotools build system files have been dropped.
The documentation has been updated to reflect the new build system —
as well as, in some cases, the past 10 years of development.
The change means that GTK+ master now has a build-time dependency on:
- Python 3.x
- Meson - http://mesonbuild.com
- Ninja (though Meson also supports Visual Studio out of the box)
Building GTK+ is now a matter of calling:
$ meson $builddir $srcdir
$ ninja -C $builddir
$ sudo ninja -C $builddir install
(where $builddir is the build directory you want to use, and $srcdir
is the directory with the GTK+ sources)
The main change is that now GTK+ takes about ⅓ of the time to build
compared to the Autotools build, with likely bigger wins on older/less
powerful hardware; the Visual Studio support on Windows should be at
least a couple of orders of magnitude easier (shout out to Fan
Chun-wei for having spent so, so many hours ensuring that we could
even build on Windows with Visual Studio and MSVC); and maintaining
the build system should be equally easier for everyone on any platform
we currently support.
Of course no migration is going to be perfect at the first try, even
though we have been building GTK+ master using Meson on the GNOME
continuous integration pipeline for a while, now. Please, report any
issue you may find.
Additionally, the following dependencies of GTK+ have added a Meson
build side-by-side with Autotools:
- GLib
- Pango
- GdkPixbuf
- ATK
- libepoxy
There are no plans for using Meson exclusively, or even side-by-side
with Autotools, on the 2.24 and 3.22 branches — at least for the
foreseeable future.
Ciao,
Emmanuele.
--
https://www.bassi.io
[@] ebassi [@gmail.com]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]