summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/glib-2-remove-runtime-warning-gtkapplication.patch24
-rw-r--r--src/gtk3-1-fixes.patch139
-rw-r--r--src/gtk3-test.c34
-rw-r--r--src/gtk3.mk41
-rw-r--r--src/gtkmm3-test.cpp21
-rw-r--r--src/gtkmm3.mk37
6 files changed, 296 insertions, 0 deletions
diff --git a/src/glib-2-remove-runtime-warning-gtkapplication.patch b/src/glib-2-remove-runtime-warning-gtkapplication.patch
new file mode 100644
index 0000000..3d47602
--- /dev/null
+++ b/src/glib-2-remove-runtime-warning-gtkapplication.patch
@@ -0,0 +1,24 @@
+This file is part of MXE.
+See index.html for further information.
+
+Remove an annoying runtime warning that pops up when using GtkApplication
+in Gtk+ 3 programs.
+
+--- a/gio/gdbusaddress.c 2014-06-28 19:02:43.000000000 +0200
++++ b/gio/gdbusaddress.c 2015-08-12 20:26:45.931228430 +0200
+@@ -1325,6 +1325,7 @@
+ __declspec(dllexport) void CALLBACK
+ g_win32_run_session_bus (HWND hwnd, HINSTANCE hinst, char *cmdline, int nCmdShow)
+ {
++ /*
+ GDBusDaemon *daemon;
+ GMainLoop *loop;
+ const char *address;
+@@ -1354,6 +1355,7 @@
+
+ g_main_loop_unref (loop);
+ g_object_unref (daemon);
++ */
+ }
+
+ static gchar *
diff --git a/src/gtk3-1-fixes.patch b/src/gtk3-1-fixes.patch
new file mode 100644
index 0000000..33c5828
--- /dev/null
+++ b/src/gtk3-1-fixes.patch
@@ -0,0 +1,139 @@
+This file is part of MXE.
+See index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+
+---
+These were adapted from the gtk2 patchset.
+
+--- a/configure
++++ b/configure
+@@ -7005,15 +7005,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ if test "$os_win32" = "yes"; then
+ if test x$enable_static = xyes -o x$enable_static = x; then
+- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling static library build, must build as DLL on Windows." >&5
+-$as_echo "$as_me: WARNING: Disabling static library build, must build as DLL on Windows." >&2;}
+- enable_static=no
++ { $as_echo "(disabled warning)" >&5
++$as_echo "(disabled warning)" >&2;}
++ enable_static=yes
+ fi
+ if test x$enable_shared = xno; then
+- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Enabling shared library build, must build as DLL on Windows." >&5
+-$as_echo "$as_me: WARNING: Enabling shared library build, must build as DLL on Windows." >&2;}
++ { $as_echo "(disabled warning)" >&5
++$as_echo "(disabled warning)" >&2;}
+ fi
+- enable_shared=yes
++ enable_shared=no
+ fi
+
+
+--- a/gdk/win32/gdkmain-win32.c 2015-07-25 23:15:29.947190754 +0200
++++ b/gdk/win32/gdkmain-win32.c 2015-07-25 23:15:55.723190733 +0200
+@@ -64,7 +64,7 @@
+ };
+
+ BOOL WINAPI
+-DllMain (HINSTANCE hinstDLL,
++gdk_DllMain (HINSTANCE hinstDLL,
+ DWORD dwReason,
+ LPVOID reserved)
+ {
+--- a/gtk/gtkwin32.c 2015-07-25 23:20:57.735190485 +0200
++++ b/gtk/gtkwin32.c 2015-07-25 23:21:13.447190472 +0200
+@@ -42,7 +42,7 @@
+ static HMODULE gtk_dll;
+
+ BOOL WINAPI
+-DllMain (HINSTANCE hinstDLL,
++gtk_DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved)
+ {
+--- a/gtk+-3.0.pc.in 2015-07-26 16:55:29.755170491 +0200
++++ b/gtk+-3.0.pc.in 2015-07-26 16:56:23.655170447 +0200
+@@ -12,5 +12,5 @@
+ Version: @VERSION@
+ Requires: gdk-@GTK_API_VERSION@ @GTK_PACKAGES@
+ Requires.private: @GTK_PRIVATE_PACKAGES@
+-Libs: -L${libdir} -lgtk-3 @GTK_EXTRA_LIBS@
++Libs: -L${libdir} -lgtk-3 @GTK_DEP_LIBS@ -lwinspool -lcomctl32 -lcomdlg32
+ Cflags: -I${includedir}/gtk-@GTK_API_VERSION@ @GTK_EXTRA_CFLAGS@
+---
+Here there were two problems, one is that util/extract-strings.exe
+was being cross-built while it should be built locally, the other is
+that in fact it wasn't even being built because of some problem with
+makefile variables (PROGRAMS appears to be empty even if it is set to
+a nonempty value).
+
+--- a/util/Makefile.in 2014-10-21 17:03:07.000000000 +0200
++++ b/util/Makefile.in 2014-12-27 23:12:40.910506266 +0100
+@@ -107,9 +107,8 @@
+ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+ am__v_lt_0 = --silent
+ am__v_lt_1 =
+-extract_strings_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+- $(extract_strings_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
++extract_strings_LINK = $(CC_FOR_BUILD) \
++ $(extract_strings_CFLAGS) $(CFLAGS_FOR_BUILD) $(AM_LDFLAGS) $(LDFLAGS_FOR_BUILD) \
+ -o $@
+ AM_V_P = $(am__v_P_@AM_V@)
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+@@ -485,7 +484,7 @@
+
+ extract-strings$(EXEEXT): $(extract_strings_OBJECTS) $(extract_strings_DEPENDENCIES) $(EXTRA_extract_strings_DEPENDENCIES)
+ @rm -f extract-strings$(EXEEXT)
+- $(AM_V_CCLD)$(extract_strings_LINK) $(extract_strings_OBJECTS) $(extract_strings_LDADD) $(LIBS)
++ $(AM_V_CCLD)$(extract_strings_LINK) $(extract_strings_OBJECTS) $(extract_strings_LDADD)
+
+ mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+@@ -517,7 +516,7 @@
+ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ extract_strings-extract-strings.o: extract-strings.c
+-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(extract_strings_CFLAGS) $(CFLAGS) -MT extract_strings-extract-strings.o -MD -MP -MF $(DEPDIR)/extract_strings-extract-strings.Tpo -c -o extract_strings-extract-strings.o `test -f 'extract-strings.c' || echo '$(srcdir)/'`extract-strings.c
++@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS_FOR_BUILD) $(extract_strings_CFLAGS) $(CFLAGS_FOR_BUILD) -MT extract_strings-extract-strings.o -MD -MP -MF $(DEPDIR)/extract_strings-extract-strings.Tpo -c -o extract_strings-extract-strings.o `test -f 'extract-strings.c' || echo '$(srcdir)/'`extract-strings.c
+ @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/extract_strings-extract-strings.Tpo $(DEPDIR)/extract_strings-extract-strings.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extract-strings.c' object='extract_strings-extract-strings.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@@ -620,7 +619,7 @@
+ done
+ check-am: all-am
+ check: check-am
+-all-am: Makefile $(PROGRAMS)
++all-am: Makefile extract-strings$(EXEEXT)
+ installdirs:
+ install: install-am
+ install-exec: install-exec-am
+---
+This one fixes "cd $builddir" failing because neither $builddir nor
+$HOME were set
+
+--- a/configure 2015-07-24 21:19:46.839151097 +0200
++++ b/configure 2015-07-24 21:20:13.655151075 +0200
+@@ -23215,7 +23215,7 @@
+ NATIVE_GDKPIXBUF_LIBS=`$PKG_CONFIG_FOR_BUILD --libs gdk-pixbuf-2.0`
+ # This is the native gtk-update-icon-cache which will be used at
+ # build time, NOT the one installed on the target host.
+- GTK_UPDATE_ICON_CACHE="`cd $builddir && pwd`/gtk/native/native-update-icon-cache$BUILD_EXEEXT"
++ GTK_UPDATE_ICON_CACHE="`pwd`/gtk/native/native-update-icon-cache$BUILD_EXEEXT"
+
+
+
+---
+Not sure what happens when this line is commented out.
+
+--- a/gtk/a11y/gtkaccessibility.c 2014-08-15 16:38:05.000000000 +0200
++++ b/gtk/a11y/gtkaccessibility.c 2015-07-26 17:43:36.647168119 +0200
+@@ -991,5 +991,5 @@
+ atk_bridge_adaptor_init (NULL, NULL);
+ #endif
+
+- atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL);
++ /* atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL); */
+ }
diff --git a/src/gtk3-test.c b/src/gtk3-test.c
new file mode 100644
index 0000000..7442034
--- /dev/null
+++ b/src/gtk3-test.c
@@ -0,0 +1,34 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+#include <gtk/gtk.h>
+
+static void activate(GtkApplication *app)
+{
+ GtkWidget *window;
+ GtkWidget *button;
+
+ window = gtk_application_window_new(app);
+ button = gtk_button_new_with_label("Hello World");
+
+ g_signal_connect_swapped(button, "clicked",
+ G_CALLBACK(gtk_widget_destroy), window);
+ gtk_container_add(GTK_CONTAINER(window), button);
+
+ gtk_widget_show_all(window);
+}
+
+int main(int argc, char *argv[])
+{
+ GtkApplication *app;
+ int status;
+
+ app = gtk_application_new(NULL, G_APPLICATION_FLAGS_NONE);
+ g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
+ status = g_application_run(G_APPLICATION(app), argc, argv);
+ g_object_unref(app);
+
+ return status;
+}
diff --git a/src/gtk3.mk b/src/gtk3.mk
new file mode 100644
index 0000000..398160f
--- /dev/null
+++ b/src/gtk3.mk
@@ -0,0 +1,41 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := gtk3
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 3.14.4
+$(PKG)_CHECKSUM := ff4a257226842d11eaaa6ca798ae72e8eaab8bbe
+$(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 := gcc 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 '^3\.' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS) \
+ --enable-explicit-deps \
+ --disable-glibtest \
+ --disable-modules \
+ --disable-cups \
+ --disable-test-print-backend \
+ --disable-gtk-doc \
+ --disable-man \
+ --with-included-immodules \
+ --without-x
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-gtk3.exe' \
+ `'$(TARGET)-pkg-config' gtk+-3.0 --cflags --libs`
+endef
+
+$(PKG)_BUILD_SHARED =
diff --git a/src/gtkmm3-test.cpp b/src/gtkmm3-test.cpp
new file mode 100644
index 0000000..131cf6c
--- /dev/null
+++ b/src/gtkmm3-test.cpp
@@ -0,0 +1,21 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+#include <gtkmm/application.h>
+#include <gtkmm/button.h>
+#include <gtkmm/window.h>
+
+int main(int argc, char *argv[])
+{
+ Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv);
+
+ Gtk::Window window;
+ Gtk::Button button("Hello World");
+ button.signal_clicked().connect(sigc::mem_fun(window, &Gtk::Window::close));
+ window.add(button);
+ window.show_all();
+
+ return app->run(window);
+}
diff --git a/src/gtkmm3.mk b/src/gtkmm3.mk
new file mode 100644
index 0000000..c605e67
--- /dev/null
+++ b/src/gtkmm3.mk
@@ -0,0 +1,37 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := gtkmm3
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 3.14.0
+$(PKG)_CHECKSUM := cc3948dcb9a83e4c55b0fa37535eb52d61531286
+$(PKG)_SUBDIR := gtkmm-$($(PKG)_VERSION)
+$(PKG)_FILE := gtkmm-$($(PKG)_VERSION).tar.xz
+$(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/gtkmm/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc gtk3 libsigc++ pangomm cairomm atkmm
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://git.gnome.org/browse/gtkmm/refs/tags' | \
+ grep '<a href=' | \
+ $(SED) -n 's,.*<a[^>]*>\([0-9]*\.[0-9]*[02468]\.[^<]*\)<.*,\1,p' | \
+ grep '^3\.' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --build="`config.guess`" \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ MAKE=$(MAKE)
+ $(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ $(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= doc_install='# DISABLED: doc-install.pl'
+
+ '$(TARGET)-g++' \
+ -W -Wall -Werror -pedantic -std=c++0x \
+ '$(2).cpp' -o '$(PREFIX)/$(TARGET)/bin/test-gtkmm3.exe' \
+ `'$(TARGET)-pkg-config' gtkmm-3.0 --cflags --libs`
+endef
+
+$(PKG)_BUILD_SHARED =