Re: Switching GTK version

Meson is new to me, but here is what I do in my

The fragment below checks for various versions of GTK+ and glib and sets appropriate variables.
You can also force gtk+ 2.x by passing --disable-gtk3 as a configure flag.


AC_ARG_ENABLE( gtk3, [  --disable-gtk3     Disable gtk+ 3.x and compile with gtk+ 2.x] , disable_gtk3=yes)

if test "x$disable_gtk3" != "xyes" ; then

echo -n "checking for GTK+ >= 3.0.0... "

PKG_CHECK_EXISTS([gtk+-3.0 >= 3.0.0],[HAVE_GTK_VERSION3=true],[HAVE_GTK_VERSION3=false])

if test "x$HAVE_GTK_VERSION3" = "xfalse"; then
echo "no"
PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.0.0)


echo "Not checking for gtk+ 3.x"


if test "x$HAVE_GTK_VERSION3" = "xfalse"; then

echo -n "checking for GTK+ >= 2.4.0... "

PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4.0)

PKG_CHECK_EXISTS([gtk+-2.0 >= 2.16.0],[HAVE_GTK_VERSION216=true],[HAVE_GTK_VERSION216=false])

PKG_CHECK_EXISTS([gtk+-2.0 >= 2.6.0],[HAVE_GTK_VERSION206=true],[HAVE_GTK_VERSION206=false])

echo "- Compiling with gtk+ 2.x -"

GTK3_VERSION=`$PKG_CONFIG --modversion gtk+-3.0`

echo "- Compiling with gtk+ version " $GTK3_VERSION " -"

PKG_CHECK_EXISTS([gtk+-3.0 >= 3.10.0],[HAVE_GTK_VERSION310=true],[HAVE_GTK_VERSION310=false])

PKG_CHECK_EXISTS([gtk+-3.0 >= 3.11.0],[HAVE_GTK_VERSION311=true],[HAVE_GTK_VERSION311=false])


if test "$HAVE_GTK_VERSION310" = "true"; then
if test "$HAVE_GTK_VERSION311" = "false"; then



PKG_CHECK_EXISTS([glib-2.0 >= 2.14.0],[HAVE_GLIB_VERSION214=true],[HAVE_GLIB_VERSION214=false])
PKG_CHECK_EXISTS([glib-2.0 >= 2.4.0],[HAVE_GLIB_VERSION24=true],[HAVE_GLIB_VERSION24=false])


On Tue, Aug 22, 2017 at 5:07 PM, Link Dupont <link sub-pop net> wrote:
Hi Igor,

On Tue, 2017-08-22 at 15:48 -0400, Igor Korot wrote:
>  Hi, ALL,
> I have setup to do my development for GTK+2 and GTK+3 on 2 different
> machines.
> My project is on GitHub and there is one codebase.
> What's the best way to set up Makefiles?

You're going to find this is a matter of opinion. Traditionally, GTK+
and GNOME projects have used GNU autotools for their build system. Many
are now moving to meson. Either way, I suggest you take some time and
learn one or both in order to make an informed decision about which
build system is best for you.

Meson is relatively new, and has most of its documentation on its
website[1]. GNU autotools has a vast online manual available[2],
however I recommend reading "Autotools: A Practition's Guide to to GNU
Autoconf, Automake, and Libtool"[3] to get a hands-on understanding of
the autotools suite.

2:, etc.

You could, of course, eschew all of those and use your own hand-
maintained Makefile. You'll find varying levels of opinion there too,
although you'll encounter some pretty compelling arguments against
maintaining your own hand-crafted Makefiles anywhere you look. In this
case, you could consider at least using pkg-config to find out whether
your required libraries are installed and where they are located on
your build host.

> Is it feasible to define some environment variable and select GTK
> version if it defined?
> Or there is a better alternative?
> Thank you.
> _______________________________________________
> gtk-list mailing list
> gtk-list gnome org

gtk-list mailing list
gtk-list gnome org

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]