[gtk+/wip/alexl/versioned-types-gtk3] Hack to work with versioned types



commit 813f4da3d62a8aa739e3e5412f7c93549a2048ae
Author: Alexander Larsson <alexl redhat com>
Date:   Fri Jan 29 18:36:21 2016 +0100

    Hack to work with versioned types

 configure.ac                   |    5 +++++
 gdk/Makefile.am                |    1 +
 gdk/gdkenumtypes.c.template    |    2 +-
 gtk/Makefile.am                |    1 +
 gtk/gtkcontainer.c             |    2 +-
 gtk/gtkmodules.c               |    2 ++
 gtk/gtktypebuiltins.c.template |    2 +-
 gtk/gtkwidget.c                |    2 +-
 8 files changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 158f13b..ffcf6f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1866,6 +1866,11 @@ if test "x${enable_Bsymbolic}" = "xyes" ; then
 fi
 AC_SUBST(GTK_LINK_FLAGS)
 
+GTK_VERSION_FLAGS="-Wl,--version-script=\$(top_srcdir)/gtk3.versions"
+AC_SUBST(GTK_VERSION_FLAGS)
+
+AC_DEFINE(G_DEFINE_TYPE_DEFAULT_VERSION, GTK3, [Gtype default version])
+
 AC_CONFIG_FILES([
 README
 INSTALL
diff --git a/gdk/Makefile.am b/gdk/Makefile.am
index 84942ce..17bd925 100644
--- a/gdk/Makefile.am
+++ b/gdk/Makefile.am
@@ -47,6 +47,7 @@ AM_CPPFLAGS =                                 \
 # we use the general approach here
 LDADD =                                        \
        $(GTK_LINK_FLAGS)                       \
+       $(GTK_VERSION_FLAGS)                    \
        -version-info $(LT_VERSION_INFO)        \
        -export-dynamic                         \
        -rpath $(libdir)                        \
diff --git a/gdk/gdkenumtypes.c.template b/gdk/gdkenumtypes.c.template
index dcafd8d..f104b1d 100644
--- a/gdk/gdkenumtypes.c.template
+++ b/gdk/gdkenumtypes.c.template
@@ -24,7 +24,7 @@ GType
 /*** BEGIN value-tail ***/
             { 0, NULL, NULL }
         };
-        etype = g_ type@_register_static (g_intern_static_string ("@EnumName@"), values);
+        etype = g_ type@_register_static (g_intern_static_string ("@EnumName@" "@@" 
G_STRINGIFY(G_DEFINE_TYPE_DEFAULT_VERSION)), values);
     }
     return etype;
 }
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 7ed75b3..7bbb154 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -77,6 +77,7 @@ deps =                                        \
 # we use the general approach here
 libtool_opts =                                                 \
   $(GTK_LINK_FLAGS)                                            \
+  $(GTK_VERSION_FLAGS)                                         \
   -version-info $(LT_VERSION_INFO)                             \
   -export-dynamic $(no_undefined)                              \
   -rpath $(libdir)
diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c
index 69ffbd7..dba4e29 100644
--- a/gtk/gtkcontainer.c
+++ b/gtk/gtkcontainer.c
@@ -447,7 +447,7 @@ gtk_container_get_type (void)
       };
 
       container_type =
-        g_type_register_static (GTK_TYPE_WIDGET, I_("GtkContainer"),
+        g_type_register_static (GTK_TYPE_WIDGET, I_("GtkContainer@@" 
G_STRINGIFY(G_DEFINE_TYPE_DEFAULT_VERSION)),
                                 &container_info, G_TYPE_FLAG_ABSTRACT);
 
       GtkContainer_private_offset =
diff --git a/gtk/gtkmodules.c b/gtk/gtkmodules.c
index 8f1aea7..75bec3a 100644
--- a/gtk/gtkmodules.c
+++ b/gtk/gtkmodules.c
@@ -589,6 +589,8 @@ _gtk_module_has_mixed_deps (GModule *module_to_check)
   gpointer func;
   gboolean result;
 
+  return FALSE;
+  
   if (!module_to_check)
     module = g_module_open (NULL, 0);
   else
diff --git a/gtk/gtktypebuiltins.c.template b/gtk/gtktypebuiltins.c.template
index fbd21db..b315527 100644
--- a/gtk/gtktypebuiltins.c.template
+++ b/gtk/gtktypebuiltins.c.template
@@ -25,7 +25,7 @@ GType
 /*** BEGIN value-tail ***/
             { 0, NULL, NULL }
         };
-        etype = g_ type@_register_static (g_intern_static_string ("@EnumName@"), values);
+        etype = g_ type@_register_static (g_intern_static_string ("@EnumName@" "@@" 
G_STRINGIFY(G_DEFINE_TYPE_DEFAULT_VERSION)), values);
     }
     return etype;
 }
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 2c9f776..2b376c2 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -895,7 +895,7 @@ gtk_widget_get_type (void)
        NULL /* interface data */
       };
 
-      widget_type = g_type_register_static (G_TYPE_INITIALLY_UNOWNED, "GtkWidget",
+      widget_type = g_type_register_static (G_TYPE_INITIALLY_UNOWNED, "GtkWidget@@" 
G_STRINGIFY(G_DEFINE_TYPE_DEFAULT_VERSION),
                                             &widget_info, G_TYPE_FLAG_ABSTRACT);
 
       g_type_add_class_private (widget_type, sizeof (GtkWidgetClassPrivate));


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