[gtksourceview] Add Vala bindings.
- From: Evan Nemerson <evann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] Add Vala bindings.
- Date: Wed, 13 Aug 2014 09:00:51 +0000 (UTC)
commit 44742519a806240a528fd61a19027cf2c24bdf02
Author: Evan Nemerson <evan nemerson com>
Date: Tue Aug 12 10:40:35 2014 -0700
Add Vala bindings.
configure.ac | 4 +
gtksourceview/GtkSource-3.0.metadata | 16 +++++
gtksourceview/Makefile.am | 31 ++++++++++
m4/vapigen.m4 | 101 ++++++++++++++++++++++++++++++++++
4 files changed, 152 insertions(+), 0 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index a43222a..9f7cb38 100644
--- a/configure.ac
+++ b/configure.ac
@@ -167,6 +167,9 @@ GOBJECT_INTROSPECTION_CHECK([0.9.0])
# Code coverage
GNOME_CODE_COVERAGE
+# Vala
+VAPIGEN_CHECK
+
# test-widget uses this to find lang files and gtksourcebuffer.c
ABS_TOP_SRCDIR=`cd $srcdir && pwd`
AC_SUBST(ABS_TOP_SRCDIR)
@@ -202,4 +205,5 @@ Configuration:
Completion Providers: ${enable_providers}
Glade Catalog: ${glade_catalog}
GObject introspection: ${found_introspection}
+ Vala: ${enable_vala}
"
diff --git a/gtksourceview/GtkSource-3.0.metadata b/gtksourceview/GtkSource-3.0.metadata
new file mode 100644
index 0000000..a02f4e0
--- /dev/null
+++ b/gtksourceview/GtkSource-3.0.metadata
@@ -0,0 +1,16 @@
+* name="(.+)/Source\\1"
+utils_* name="utils_(.+)" parent="Gtk.SourceUtils"
+GtkSource name="Gtk" cprefix="Gtk" lower_case_cprefix="gtk_"
+Completion
+ .show#method name="start"
+CompletionProvider
+ .*#virtual_method virtual
+ .get_icon nullable
+ .get_info_widget nullable
+CompletionProposal
+ .equal#virtual_method virtual
+ .get_icon#virtual_method virtual
+ .hash#virtual_method virtual
+SearchContext
+ .get_regex_error nullable
+ .regex_error type="GLib.Error?"
diff --git a/gtksourceview/Makefile.am b/gtksourceview/Makefile.am
index ea9b9b5..729f84c 100644
--- a/gtksourceview/Makefile.am
+++ b/gtksourceview/Makefile.am
@@ -263,4 +263,35 @@ CLEANFILES += \
$(typelib_DATA)
endif
+if ENABLE_VAPIGEN
+-include $(VAPIGEN_MAKEFILE)
+
+gtksourceview-3.0.vapi: GtkSource-3.0.gir
+
+VAPIGEN_VAPIS = gtksourceview-3.0.vapi
+
+gtksourceview_3_0_vapi_DEPS = atk \
+ gdk-3.0 \
+ gdk-pixbuf-2.0 \
+ gio-2.0 \
+ gtk+-3.0 \
+ pango \
+ cairo
+
+gtksourceview-3.0.deps:
+ $(AM_V_GEN) for pkg in $(gtksourceview_3_0_vapi_DEPS); do \
+ echo $$pkg >> $@; \
+ done
+
+gtksourceview_3_0_vapi_METADATADIRS = $(srcdir)
+gtksourceview_3_0_vapi_FILES = GtkSource-3.0.gir
+
+vapidir = $(datadir)/vala/vapi
+vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps)
+
+CLEANFILES += $(vapi_DATA)
+endif
+
+EXTRA_DIST += GtkSource-3.0.metadata
+
-include $(top_srcdir)/git.mk
diff --git a/m4/vapigen.m4 b/m4/vapigen.m4
new file mode 100644
index 0000000..2c435e7
--- /dev/null
+++ b/m4/vapigen.m4
@@ -0,0 +1,101 @@
+dnl vapigen.m4
+dnl
+dnl Copyright 2012 Evan Nemerson
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU Lesser General Public
+dnl License as published by the Free Software Foundation; either
+dnl version 2.1 of the License, or (at your option) any later version.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl Lesser General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU Lesser General Public
+dnl License along with this library; if not, write to the Free Software
+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND_INTROSPECTION], [DEFAULT])
+# --------------------------------------
+# Check vapigen existence and version
+#
+# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
+AC_DEFUN([VAPIGEN_CHECK],
+[
+ AS_IF([test "x$3" != "xyes"], [
+ m4_provide_if([GOBJECT_INTROSPECTION_CHECK], [], [
+ m4_provide_if([GOBJECT_INTROSPECTION_REQUIRE], [], [
+ AC_MSG_ERROR([[You must call GOBJECT_INTROSPECTION_CHECK or GOBJECT_INTROSPECTION_REQUIRE
before using VAPIGEN_CHECK unless using the FOUND_INTROSPECTION argument is "yes"]])
+ ])
+ ])
+ ])
+
+ AC_ARG_ENABLE([vala],
+ [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings
@<:@default=]ifelse($4,,auto,$4)[@:>@])],,[
+ AS_IF([test "x$4" = "x"], [
+ enable_vala=auto
+ ], [
+ enable_vala=$4
+ ])
+ ])
+
+ AS_CASE([$enable_vala], [no], [enable_vala=no],
+ [yes], [
+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
+ AC_MSG_ERROR([Vala bindings require GObject Introspection])
+ ])
+ ], [auto], [
+ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
+ enable_vala=no
+ ])
+ ], [
+ AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@])
+ ])
+
+ AS_IF([test "x$2" = "x"], [
+ vapigen_pkg_name=vapigen
+ ], [
+ vapigen_pkg_name=vapigen-$2
+ ])
+ AS_IF([test "x$1" = "x"], [
+ vapigen_pkg="$vapigen_pkg_name"
+ ], [
+ vapigen_pkg="$vapigen_pkg_name >= $1"
+ ])
+
+ PKG_PROG_PKG_CONFIG
+
+ PKG_CHECK_EXISTS([$vapigen_pkg], [
+ AS_IF([test "$enable_vala" = "auto"], [
+ enable_vala=yes
+ ])
+ ], [
+ AS_CASE([$enable_vala], [yes], [
+ AC_MSG_ERROR([$vapigen_pkg not found])
+ ], [auto], [
+ enable_vala=no
+ ])
+ ])
+
+ AC_MSG_CHECKING([for vapigen])
+
+ AS_CASE([$enable_vala],
+ [yes], [
+ VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
+ VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
+ AS_IF([test "x$2" = "x"], [
+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
+ ], [
+ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
+ ])
+ ])
+
+ AC_MSG_RESULT([$enable_vala])
+
+ AC_SUBST([VAPIGEN])
+ AC_SUBST([VAPIGEN_VAPIDIR])
+ AC_SUBST([VAPIGEN_MAKEFILE])
+
+ AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes")
+])
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]