[gnome-builder] vala: add workaround for vala API/ABI break



commit f507a9294c214a170a3efa8e3ca5d91abb4a017c
Author: Christian Hergert <chergert redhat com>
Date:   Sun Feb 21 22:04:11 2016 -0800

    vala: add workaround for vala API/ABI break
    
    This checks to see if vala_symbol_get_deprecated() is available. If so,
    we use the old version. Otherwise, we use the new style (which is currently
    only available in git).
    
    This still doesn't fix the issue with `make distcheck` released tarballs,
    since we are still using _SOURCES for *.vala.

 plugins/vala-pack/Makefile.am                   |    4 ++++
 plugins/vala-pack/configure.ac                  |   18 ++++++++++++++++++
 plugins/vala-pack/ide-vala-symbol-resolver.vala |    4 ++++
 3 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/plugins/vala-pack/Makefile.am b/plugins/vala-pack/Makefile.am
index f50b9be..552df78 100644
--- a/plugins/vala-pack/Makefile.am
+++ b/plugins/vala-pack/Makefile.am
@@ -38,6 +38,10 @@ libvala_pack_plugin_la_VALAFLAGS = \
        --pkg template-glib-1.0 \
        $(NULL)
 
+if ENABLE_VALA_SYMBOL_GET_DEPRECATED
+libvala_pack_plugin_la_VALAFLAGS += -D ENABLE_VALA_SYMBOL_GET_DEPRECATED
+endif
+
 libvala_pack_plugin_la_CFLAGS = \
        -DPACKAGE_DATADIR=\""$(datadir)/gnome-builder"\" \
        -DG_LOG_DOMAIN=\"vala-pack-plugin\" \
diff --git a/plugins/vala-pack/configure.ac b/plugins/vala-pack/configure.ac
index 16ac4b6..13907af 100644
--- a/plugins/vala-pack/configure.ac
+++ b/plugins/vala-pack/configure.ac
@@ -24,6 +24,24 @@ AS_IF([test x$enable_vala_pack_plugin = xyes],[
        AS_IF([test x$enable_vala != xyes || test x$have_libvala != xyes],[
                AC_MSG_ERROR([Please install both the vala compiler and vapigen. vapigen may be part of your 
systems vala-tools package.])
        ])
+
+       AS_IF([test x$have_libvala = xyes],[
+               cflags_save="${CFLAGS}"
+               libs_save="${LIBS}"
+               CFLAGS="${CFLAGS} ${VALA_CFLAGS}"
+               LIBS="${LIBS} ${VALA_LIBS}"
+               AC_MSG_CHECKING([if vala uses old-style symbol deprecations])
+               AC_TRY_LINK([#include <vala.h>],[
+                       vala_symbol_get_deprecated (NULL);
+               ],
+               [have_vala_symbol_get_deprecated=yes],
+               [have_vala_symbol_get_deprecated=no])
+               CFLAGS="${cflags_save}"
+               LIBS="${libs_save}"
+       ])
+       AC_MSG_RESULT([$have_vala_symbol_get_deprecated])
+
+       AM_CONDITIONAL(ENABLE_VALA_SYMBOL_GET_DEPRECATED, test x$have_vala_symbol_get_deprecated = xyes)
 ])
 
 # for if ENABLE_VALA_PACK_PLUGIN in Makefile.am
diff --git a/plugins/vala-pack/ide-vala-symbol-resolver.vala b/plugins/vala-pack/ide-vala-symbol-resolver.vala
index 3cc4a20..9d29d93 100644
--- a/plugins/vala-pack/ide-vala-symbol-resolver.vala
+++ b/plugins/vala-pack/ide-vala-symbol-resolver.vala
@@ -72,7 +72,11 @@ namespace Ide
                                if (binding != null && binding == Vala.MemberBinding.STATIC)
                                        flags |= Ide.SymbolFlags.IS_STATIC;
 
+#if ENABLE_VALA_SYMBOL_GET_DEPRECATED
+                               if (symbol.deprecated)
+#else
                                if (symbol.version.deprecated)
+#endif
                                        flags |= Ide.SymbolFlags.IS_DEPRECATED;
 
                                var source_reference = symbol.source_reference;


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