Meson is new to me, but here is what I do in my configure.ac. 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.
HAVE_GTK_VERSION3=false 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" else PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.0.0) fi else echo "Not checking for gtk+ 3.x" fi 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 -" else 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]) HAVE_GTK_VERSION216=true HAVE_GTK_VERSION206=true if test "$HAVE_GTK_VERSION310" = "true"; then if test "$HAVE_GTK_VERSION311" = "false"; then GTK310_WARN=true fi fi fi AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) 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]) Regards, Gabriel. http://lives-video.com https://www.openhub.net/accounts/salsaman On Tue, Aug 22, 2017 at 5:07 PM, Link Dupont <l...@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. > > 1: http://mesonbuild.com/ > 2: http://www.gnu.org/software/autoconf/manual/, etc. > 3: https://www.nostarch.com/autotools.htm > > 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 > > https://mail.gnome.org/mailman/listinfo/gtk-list > > _______________________________________________ > gtk-list mailing list > gtk-list@gnome.org > https://mail.gnome.org/mailman/listinfo/gtk-list > >
_______________________________________________ gtk-list mailing list gtk-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-list