changeset 3176:0fc090129214

[MSVC] add GTK+ 3.x module (and MSVC-specific patch)
author Michael Goffioul <michael.goffioul@gmail.com>
date Thu, 25 Jul 2013 15:44:17 -0400
parents f283b410a60f
children 9e883aedbf4d
files dist-files.mk index.html src/gtk3.mk src/msvc-gtk3-1.patch
diffstat 4 files changed, 204 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/dist-files.mk	Thu Jul 25 15:43:35 2013 -0400
+++ b/dist-files.mk	Thu Jul 25 15:44:17 2013 -0400
@@ -126,6 +126,7 @@
   gtk2-1-fixes.patch \
   gtk2-test.c \
   gtk2.mk \
+  gtk3.mk \
   gtkglarea-1-fixes.patch \
   gtkglarea.mk \
   gtkglext-1-fixes.patch \
@@ -295,6 +296,7 @@
   msvc-glib-1.patch \
   msvc-gnutls-1.patch \
   msvc-graphicsmagick-1.patch \
+  msvc-gtk3-1.patch \
   msvc-harfbuzz-1.patch \
   msvc-hdf5-1.patch \
   msvc-itsol-1.patch \
--- a/index.html	Thu Jul 25 15:43:35 2013 -0400
+++ b/index.html	Thu Jul 25 15:44:17 2013 -0400
@@ -1324,6 +1324,11 @@
         <td id="gtk2-website"><a href="http://www.gtk.org/">GTK+</a></td>
     </tr>
     <tr>
+        <td id="gtk3-package">gtk3</td>
+        <td id="gtk3-version">3.8.2</td>
+        <td id="gtk3-website"><a href="http://www.gtk.org/">GTK+</a></td>
+    </tr>
+    <tr>
         <td id="gtkglarea-package">gtkGLArea</td>
         <td id="gtkglarea-version">2.0.1</td>
         <td id="gtkglarea-website"><a href="http://www.mono-project.com/GtkGLArea/">GtkGLArea</a></td>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gtk3.mk	Thu Jul 25 15:44:17 2013 -0400
@@ -0,0 +1,40 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG             := gtk3
+$(PKG)_IGNORE   :=
+$(PKG)_CHECKSUM := c519b553b618588f288c70ea5dce1145588944eb
+$(PKG)_SUBDIR   := gtk+-$($(PKG)_VERSION)
+$(PKG)_FILE     := gtk+-$($(PKG)_VERSION).tar.xz
+$(PKG)_URL      := http://ftp.gnome.org/pub/gnome/sources/gtk+/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
+$(PKG)_DEPS     := gettext libpng jpeg tiff jasper glib atk pango cairo gdk-pixbuf
+
+define $(PKG)_UPDATE
+    $(WGET) -q -O- 'http://git.gnome.org/browse/gtk+/refs/tags' | \
+    grep '<a href=' | \
+    $(SED) -n 's,.*<a[^>]*>\([0-9]*\.[0-9]*[02468]\.[^<]*\)<.*,\1,p' | \
+    grep -v '^3\.9' | \
+    grep '^3\.' | \
+    head -1
+endef
+
+define $(PKG)_BUILD
+    cd '$(1)' && ./configure \
+        $(HOST_AND_BUILD_CONFIGURE_OPTIONS) \
+        $(ENABLE_SHARED_OR_STATIC) \
+        --prefix='$(HOST_PREFIX)' \
+        --enable-explicit-deps \
+        --disable-glibtest \
+        --disable-modules \
+        --disable-cups \
+        --disable-test-print-backend \
+        --disable-gtk-doc \
+        --disable-man \
+        --with-included-immodules \
+        --without-x \
+	PKG_CONFIG='$(MXE_PKG_CONFIG)' \
+	PKG_CONFIG_PATH='$(HOST_LIBDIR)/pkgconfig' \
+	&& $(CONFIGURE_POST_HOOK)
+    $(MAKE) -C '$(1)' -j '$(JOBS)' noinst_PROGRAMS=
+    $(MAKE) -C '$(1)' -j 1 install noinst_PROGRAMS=
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/msvc-gtk3-1.patch	Thu Jul 25 15:44:17 2013 -0400
@@ -0,0 +1,157 @@
+diff -ur gtk+-3.8.2-orig/gdk/Makefile.in gtk+-3.8.2/gdk/Makefile.in
+--- gtk+-3.8.2-orig/gdk/Makefile.in	2013-05-13 06:26:30 -0400
++++ gtk+-3.8.2/gdk/Makefile.in	2013-07-25 13:13:07 -0400
+@@ -67,7 +67,7 @@
+ @USE_WIN32_FALSE@	$(am__append_1) $(am__append_2) \
+ @USE_WIN32_FALSE@	$(am__append_4) $(am__append_6) \
+ @USE_WIN32_FALSE@	$(am__append_7)
+-@USE_WIN32_TRUE@am__append_5 = -Wl,win32/rc/gdk-win32-res.o -export-symbols $(srcdir)/gdk.def
++@USE_WIN32_TRUE@am__append_5 = -Wl,win32/rc/gdk-win32-res.o -export-symbols-regex "xXx" -Wl,$(srcdir)/gdk.def
+ @USE_BROADWAY_TRUE@am__append_6 = broadway/libgdk-broadway.la
+ @USE_WAYLAND_TRUE@am__append_7 = wayland/libgdk-wayland.la
+ @HAVE_INTROSPECTION_TRUE@am__append_8 = Gdk-3.0.gir
+@@ -942,7 +942,7 @@
+ @HAVE_INTROSPECTION_TRUE@gir_DATA = $(INTROSPECTION_GIRS)
+ @HAVE_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0
+ @HAVE_INTROSPECTION_TRUE@typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+-@MS_LIB_AVAILABLE_TRUE@noinst_DATA = gdk-win32-$(GTK_API_VERSION).lib
++@MS_LIB_AVAILABLE_FALSE@noinst_DATA = gdk-win32-$(GTK_API_VERSION).lib
+ TESTS_ENVIRONMENT = srcdir="$(srcdir)"
+ @OS_LINUX_TRUE@TESTS = abicheck.sh
+ lib_LTLIBRARIES = libgdk-3.la
+@@ -1717,17 +1717,17 @@
+ @OS_WIN32_FALSE@install-def-file:
+ @OS_WIN32_FALSE@uninstall-def-file:
+ 
+-@MS_LIB_AVAILABLE_TRUE@gdk-win32-$(GTK_API_VERSION).lib: libgdk-win32-$(GTK_API_VERSION).la gdk.def
+-@MS_LIB_AVAILABLE_TRUE@	lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgdk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gdk.def -out:$@
++@MS_LIB_AVAILABLE_FALSE@gdk-win32-$(GTK_API_VERSION).lib: libgdk-win32-$(GTK_API_VERSION).la gdk.def
++@MS_LIB_AVAILABLE_FALSE@	lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgdk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gdk.def -out:$@
+ 
+-@MS_LIB_AVAILABLE_TRUE@install-ms-lib:
+-@MS_LIB_AVAILABLE_TRUE@	mkdir -p $(DESTDIR)$(libdir)
+-@MS_LIB_AVAILABLE_TRUE@	$(INSTALL) gdk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
+-
+-@MS_LIB_AVAILABLE_TRUE@uninstall-ms-lib:
+-@MS_LIB_AVAILABLE_TRUE@	-rm $(DESTDIR)$(libdir)/gdk-win32-$(GTK_API_VERSION).lib
+ @MS_LIB_AVAILABLE_FALSE@install-ms-lib:
++@MS_LIB_AVAILABLE_FALSE@	mkdir -p $(DESTDIR)$(libdir)
++@MS_LIB_AVAILABLE_FALSE@	$(INSTALL) gdk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
++
+ @MS_LIB_AVAILABLE_FALSE@uninstall-ms-lib:
++@MS_LIB_AVAILABLE_FALSE@	-rm $(DESTDIR)$(libdir)/gdk-win32-$(GTK_API_VERSION).lib
++@MS_LIB_AVAILABLE_TRUE@install-ms-lib:
++@MS_LIB_AVAILABLE_TRUE@uninstall-ms-lib:
+ 
+ # This places the generated .def file in srcdir, since it is expected to be there.
+ # (The one from a tarball is)
+diff -ur gtk+-3.8.2-orig/gtk/Makefile.in gtk+-3.8.2/gtk/Makefile.in
+--- gtk+-3.8.2-orig/gtk/Makefile.in	2013-05-13 06:26:32 -0400
++++ gtk+-3.8.2/gtk/Makefile.in	2013-07-25 13:14:52 -0400
+@@ -1146,7 +1146,7 @@
+     --includedir=. \
+     --includedir=../gdk
+ 
+-@USE_QUARTZ_FALSE@GTK_PRINT_PREVIEW_COMMAND = "evince --unlink-tempfile --preview --print-settings %s %f"
++@USE_QUARTZ_FALSE@GTK_PRINT_PREVIEW_COMMAND = "evince --unlink-tempfile --preview --print-settings %%s %%f"
+ @USE_QUARTZ_TRUE@GTK_PRINT_PREVIEW_COMMAND = "open -a /Applications/Preview.app %f"
+ SUBDIRS = a11y native . tests
+ @HAVE_CUPS_FALSE@@HAVE_PAPI_CUPS_FALSE@@HAVE_PAPI_FALSE@GTK_PRINT_BACKENDS = file,lpr
+@@ -1178,10 +1178,10 @@
+ 
+ @PLATFORM_WIN32_TRUE@no_undefined = -no-undefined
+ @OS_WIN32_TRUE@gtk_def = gtk.def
+-@OS_WIN32_TRUE@gtk_win32_symbols = -export-symbols $(srcdir)/gtk.def
++@OS_WIN32_TRUE@gtk_win32_symbols = -export-symbols-regex "xXx" -Wl,$(srcdir)/gtk.def
+ @OS_WIN32_TRUE@gtk_win32_res = gtk-win32-res.o
+ @OS_WIN32_TRUE@gtk_win32_res_ldflag = -Wl,gtk-win32-res.o
+-@MS_LIB_AVAILABLE_TRUE@noinst_DATA = gtk-win32-$(GTK_API_VERSION).lib
++@MS_LIB_AVAILABLE_FALSE@noinst_DATA = gtk-win32-$(GTK_API_VERSION).lib
+ TESTS_ENVIRONMENT = srcdir="$(srcdir)" gtk_all_c_sources="$(gtk_all_c_sources)"
+ @OS_LINUX_TRUE@TESTS = abicheck.sh
+ libgtkincludedir = $(includedir)/gtk-3.0/gtk
+@@ -6037,16 +6037,16 @@
+ @OS_WIN32_FALSE@install-def-file:
+ @OS_WIN32_FALSE@uninstall-def-file:
+ 
+-@MS_LIB_AVAILABLE_TRUE@gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la gtk.def
+-@MS_LIB_AVAILABLE_TRUE@	lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgtk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@
++@MS_LIB_AVAILABLE_FALSE@gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la gtk.def
++@MS_LIB_AVAILABLE_FALSE@	lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgtk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@
+ 
+-@MS_LIB_AVAILABLE_TRUE@install-ms-lib:
+-@MS_LIB_AVAILABLE_TRUE@	$(INSTALL) gtk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
+-
+-@MS_LIB_AVAILABLE_TRUE@uninstall-ms-lib:
+-@MS_LIB_AVAILABLE_TRUE@	-rm $(DESTDIR)$(libdir)/gtk-win32-$(GTK_API_VERSION).lib
+ @MS_LIB_AVAILABLE_FALSE@install-ms-lib:
++@MS_LIB_AVAILABLE_FALSE@	$(INSTALL) gtk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
++
+ @MS_LIB_AVAILABLE_FALSE@uninstall-ms-lib:
++@MS_LIB_AVAILABLE_FALSE@	-rm $(DESTDIR)$(libdir)/gtk-win32-$(GTK_API_VERSION).lib
++@MS_LIB_AVAILABLE_TRUE@install-ms-lib:
++@MS_LIB_AVAILABLE_TRUE@uninstall-ms-lib:
+ 
+ # This places the generated .def file in srcdir, since it is expected to be there.
+ # (The one from a tarball is)
+diff -ur gtk+-3.8.2-orig/gtk/gtk-launch.c gtk+-3.8.2/gtk/gtk-launch.c
+--- gtk+-3.8.2-orig/gtk/gtk-launch.c	2013-03-09 15:03:18 -0500
++++ gtk+-3.8.2/gtk/gtk-launch.c	2013-07-25 13:14:26 -0400
+@@ -117,7 +117,9 @@
+   info = G_APP_INFO (g_desktop_app_info_new (desktop_file_name));
+   g_free (desktop_file_name);
+ #else
++#ifndef _MSC_VER
+ #warning Please add support for creating AppInfo from id for your OS
++#endif
+   g_printerr (_("Creating AppInfo from id not supported on non unix operating systems"));
+ #endif
+   args++;
+diff -ur gtk+-3.8.2-orig/gtk/tests/testing.c gtk+-3.8.2/gtk/tests/testing.c
+--- gtk+-3.8.2-orig/gtk/tests/testing.c	2013-03-09 15:03:21 -0500
++++ gtk+-3.8.2/gtk/tests/testing.c	2013-07-25 13:38:15 -0400
+@@ -138,7 +138,11 @@
+ static void
+ test_text_access (void)
+ {
++#ifdef _MSC_VER
++# define N_WIDGETS 3
++#else
+   const int N_WIDGETS = 3;
++#endif
+   GtkWidget *widgets[N_WIDGETS];
+   int i = 0;
+   widgets[i++] = gtk_test_create_widget (GTK_TYPE_LABEL, NULL);
+diff -ur gtk+-3.8.2-orig/libgail-util/Makefile.in gtk+-3.8.2/libgail-util/Makefile.in
+--- gtk+-3.8.2-orig/libgail-util/Makefile.in	2013-05-13 06:26:32 -0400
++++ gtk+-3.8.2/libgail-util/Makefile.in	2013-07-25 13:19:45 -0400
+@@ -473,8 +473,8 @@
+ 	&& DISPLAY=:$$XID && export DISPLAY
+ 
+ @PLATFORM_WIN32_TRUE@no_undefined = -no-undefined
+-@OS_WIN32_TRUE@export_symbols = -export-symbols $(srcdir)/gailutil.def
+-@MS_LIB_AVAILABLE_TRUE@noinst_DATA = gailutil.lib
++@OS_WIN32_TRUE@export_symbols = -export-symbols-regex "xXx" -Wl,$(srcdir)/gailutil.def
++@MS_LIB_AVAILABLE_FALSE@noinst_DATA = gailutil.lib
+ lib_LTLIBRARIES = libgailutil-3.la
+ util_c_sources = \
+ 	gailmisc.c		\
+@@ -936,13 +936,13 @@
+ @OS_WIN32_FALSE@install-def-file:
+ @OS_WIN32_FALSE@uninstall-def-file:
+ 
+-@MS_LIB_AVAILABLE_TRUE@install-ms-lib:
+-@MS_LIB_AVAILABLE_TRUE@	$(INSTALL) gailutil.lib $(DESTDIR)$(libdir)
+-
+-@MS_LIB_AVAILABLE_TRUE@uninstall-ms-lib:
+-@MS_LIB_AVAILABLE_TRUE@	-rm $(DESTDIR)$(libdir)/gailutil.lib
+ @MS_LIB_AVAILABLE_FALSE@install-ms-lib:
++@MS_LIB_AVAILABLE_FALSE@	$(INSTALL) gailutil.lib $(DESTDIR)$(libdir)
++
+ @MS_LIB_AVAILABLE_FALSE@uninstall-ms-lib:
++@MS_LIB_AVAILABLE_FALSE@	-rm $(DESTDIR)$(libdir)/gailutil.lib
++@MS_LIB_AVAILABLE_TRUE@install-ms-lib:
++@MS_LIB_AVAILABLE_TRUE@uninstall-ms-lib:
+ 
+ gailutil.lib: libgailutil-3.la gailutil.def
+ 	lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgailutil-3.0-$(GAIL_LT_CURRENT_MINUS_AGE).dll -def:gailutil.def -out:$@