Author: cazfi
Date: Sat May 14 08:13:05 2016
New Revision: 32696

URL: http://svn.gna.org/viewcvs/freeciv?rev=32696&view=rev
Log:
Allow one to select gtk3x gui also to modpack installer.

See patch #7220

Modified:
    trunk/configure.ac
    trunk/tools/Makefile.am
    trunk/tools/mpgui_gtk3.c

Modified: trunk/configure.ac
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/configure.ac?rev=32696&r1=32695&r2=32696&view=diff
==============================================================================
--- trunk/configure.ac  (original)
+++ trunk/configure.ac  Sat May 14 08:13:05 2016
@@ -995,13 +995,14 @@
 
 dnl freeciv-modpack checks
 AC_ARG_ENABLE([fcmp],
-  AS_HELP_STRING([--enable-fcmp=no/yes/gtk2/gtk3/qt/cli/all/auto], [build 
freeciv-modpack-program [auto]]),
+  AS_HELP_STRING([--enable-fcmp=no/yes/gtk2/gtk3/gtk3x/qt/cli/all/auto], 
[build freeciv-modpack-program [auto]]),
 [fc_mp=${enableval}],
 [fc_mp=auto])
 
 fcmp_cli=no
 fcmp_gtk2=no
 fcmp_gtk3=no
+fcmp_gtk3x=no
 fcmp_qt=no
 fcmp_list=
 
@@ -1027,6 +1028,8 @@
          test "x$mp" = "xgtk30"  ||
          test "x$mp" = "xgtk-3.0" ; then
       req_fcmp_gtk3=yes
+    elif test "x$mp" = "xgtk3x" ; then
+      req_fcmp_gtk3x=yes
     elif test "x$mp" = "xqt" ; then
       req_fcmp_qt=yes
     elif test "x$mp" = "xcli" ; then
@@ -1065,6 +1068,34 @@
   AC_MSG_ERROR([Cannot build gtk3-version of freeciv-modpack as requested])
 fi
 
+if test "x$req_fcmp_gtk3x" = "xyes" ||
+   test "x$modinst" = "xall" || test "x$modinst" = "xauto" ; then
+  PKG_CHECK_MODULES([GTK3X_MP], [gtk+-3.0 >= 3.18.0],
+[
+  GTK3X_MP_CFLAGS="$GTK3X_MP_CFLAGS 
-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_18"
+  GTK3X_MP_CFLAGS="$GTK3X_MP_CFLAGS 
-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_46"
+  PKG_CHECK_MODULES([GTHREAD_GTK3X], [gthread-2.0],
+[
+  fcmp_gtk3x=yes
+  fcmp_list="$fcmp_list gtk3x"
+  mp_gtk3x_cflags="$GTK3X_MP_CFLAGS $GHTREAD_GTK3X_CFLAGS"
+  mp_gtk3x_libs="$GTK3X_MP_LIBS $GTHREAD_GTK3X_LIBS"
+  if test "x$MINGW32" = "xyes"; then
+    dnl Required to compile gtk3 on Windows platform
+    mp_gtk3x_cflags="$mp_gtk3x_cflags -mms-bitfields"
+    mp_gtk3x_ldflags="$mp_gtk3x_ldflags -mwindows"
+  fi
+
+  if test "x$modinst" = "xauto" ; then
+    modinst=found
+  fi
+], [])], [])
+fi
+
+if test "x$req_fcmp_gtk3x" = "xyes" && test "x$fcmp_gtk3x" != "xyes" ; then
+  AC_MSG_ERROR([Cannot build gtk3x-version of freeciv-modpack as requested])
+fi
+
 if test "x$req_fcmp_gtk2" = "xyes" ||
    test "x$modinst" = "xall" ; then
   AM_PATH_GTK_2_0([2.12.0],
@@ -1127,6 +1158,7 @@
    test "x$modinst" != "xno" &&
    test "x$modinst" != "xcli" &&
    test "x$fcmp_gtk3" != "xyes" &&
+   test "x$fcmp_gtk3x" != "xyes" &&
    test "x$fcmp_gtk2" != "xyes" &&
    test "x$fcmp_qt" != "xyes" ;then
   AC_MSG_ERROR([Cannot build modpack installer with any gui])
@@ -1136,6 +1168,7 @@
   dnl Hack to get a run-time icon -- not needed on Windows
   mp_gtk2_cflags="$mp_gtk2_cflags 
-DMPICON_PATH=\"\\\"$datadir/freeciv/misc/mpicon.png\\\"\""
   mp_gtk3_cflags="$mp_gtk3_cflags 
-DMPICON_PATH=\"\\\"$datadir/freeciv/misc/mpicon.png\\\"\""
+  mp_gtk3x_cflags="$mp_gtk3x_cflags 
-DMPICON_PATH=\"\\\"$datadir/freeciv/misc/mpicon.png\\\"\""
 fi
 
 if test "x$fcmp_list" = "x" ; then
@@ -1144,6 +1177,7 @@
 
 AM_CONDITIONAL([MODINST], [test "x$modinst" != "xno"])
 AM_CONDITIONAL([MODINST_GTK3], [test "x$fcmp_gtk3" = "xyes"])
+AM_CONDITIONAL([MODINST_GTK3X], [test "x$fcmp_gtk3x" = "xyes"])
 AM_CONDITIONAL([MODINST_GTK2], [test "x$fcmp_gtk2" = "xyes"])
 AM_CONDITIONAL([MODINST_QT], [test "x$fcmp_qt" = "xyes"])
 AM_CONDITIONAL([MODINST_CLI], [test "x$fcmp_cli" = "xyes"])
@@ -1211,6 +1245,9 @@
 AC_SUBST([mp_gtk3_cflags])
 AC_SUBST([mp_gtk3_libs])
 AC_SUBST([mp_gtk3_ldflags])
+AC_SUBST([mp_gtk3x_cflags])
+AC_SUBST([mp_gtk3x_libs])
+AC_SUBST([mp_gtk3x_ldflags])
 AC_SUBST([mp_qt_cppflags])
 AC_SUBST([mp_qt_cxxflags])
 AC_SUBST([mp_qt_libs])

Modified: trunk/tools/Makefile.am
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/tools/Makefile.am?rev=32696&r1=32695&r2=32696&view=diff
==============================================================================
--- trunk/tools/Makefile.am     (original)
+++ trunk/tools/Makefile.am     Sat May 14 08:13:05 2016
@@ -28,6 +28,9 @@
 endif
 if MODINST_GTK3
 bin_PROGRAMS += freeciv-mp-gtk3
+endif
+if MODINST_GTK3X
+bin_PROGRAMS += freeciv-mp-gtk3x
 endif
 if MODINST_QT
 bin_PROGRAMS += freeciv-mp-qt
@@ -164,6 +167,28 @@
                $(MPICON)
 endif
 
+if MODINST_GTK3X
+freeciv_mp_gtk3x_CPPFLAGS = $(common_cppflags) $(mp_gtk3x_cflags) -DGTK3XMP
+
+# For the time being gtk3 gui sources are ok in respect to gtk3x
+# requirements - there's no deprecated functions used.
+# The only difference is in the name the binary prints out - that's what
+# -DGTK3XMP in the freeciv_mp_gtk3x_CPPFLAGS is for.
+# Instead of maintaining two files, use the same one until there
+# comes real reason to make them differ.
+freeciv_mp_gtk3x_SOURCES = mpgui_gtk3.c
+
+freeciv_mp_gtk3x_LDFLAGS = $(mp_gtk3x_ldflags)
+
+freeciv_mp_gtk3x_LDADD = \
+               libfcmp.la \
+               $(top_builddir)/dependencies/cvercmp/libcvercmp.la \
+               $(top_builddir)/common/libfreeciv.la \
+               $(TINYCTHR_LIBS) $(MAPIMG_WAND_LIBS) \
+               $(mp_gtk3x_libs) \
+               $(MPICON)
+endif
+
 if MODINST_QT
 
 MOC_FILES = \

Modified: trunk/tools/mpgui_gtk3.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/tools/mpgui_gtk3.c?rev=32696&r1=32695&r2=32696&view=diff
==============================================================================
--- trunk/tools/mpgui_gtk3.c    (original)
+++ trunk/tools/mpgui_gtk3.c    Sat May 14 08:13:05 2016
@@ -1,4 +1,4 @@
-/**********************************************************************
+/***********************************************************************
  Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -602,19 +602,25 @@
 
     gtk_widget_realize(toplevel);
     gtk_widget_set_name(toplevel, "Freeciv-modpack");
+#ifndef GTK3XMP
     gtk_window_set_title(GTK_WINDOW(toplevel),
                          _("Freeciv modpack installer (gtk3)"));
+#else  /* GTK3XMP */
+    gtk_window_set_title(GTK_WINDOW(toplevel),
+                         _("Freeciv modpack installer (gtk3x)"));
+#endif /* GTK3XMP */
 
     /* Keep the icon of the executable on Windows */
-#ifndef WIN32_NATIVE
+#ifndef FREECIV_MSWINDOWS
     {
       /* Unlike main client, this only works if installed. Ignore any
        * errors loading the icon. */
       GError *err;
+
       (void) gtk_window_set_icon_from_file(GTK_WINDOW(toplevel), MPICON_PATH,
                                            &err);
     }
-#endif /* WIN32_NATIVE */
+#endif /* FREECIV_MSWINDOWS */
 
     g_signal_connect(toplevel, "delete_event",
                      G_CALLBACK(quit_dialog_callback), NULL);


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to