[gssdp] Create vapi file from introspection
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gssdp] Create vapi file from introspection
- Date: Sat, 18 Aug 2012 16:01:42 +0000 (UTC)
commit 6ea8f8848d245863deb6b40c8efea8f9fed37f83
Author: Jens Georg <mail jensge org>
Date: Thu Feb 23 14:02:44 2012 +0200
Create vapi file from introspection
The skipping of the error-domain in .metadata and the -custom.vala file
are necessary due to https://bugzilla.gnome.org/show_bug.cgi?id=670673.
They can be removed once that is fixed
https://bugzilla.gnome.org/show_bug.cgi?id=675355
Makefile.am | 2 +-
configure.ac | 11 +++++++++++
m4/vapigen.m4 | 41 +++++++++++++++++++++++++++++++++++++++++
vala/GSSDP-1.0.metadata | 3 +++
vala/Makefile.am | 20 ++++++++++++++++++++
vala/gssdp-1.0-custom.vala | 9 +++++++++
vala/gssdp-1.0.deps | 1 +
7 files changed, 86 insertions(+), 1 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index ed3a9f4..057a9b2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,7 +4,7 @@ else
TOOLS_DIR =
endif
-SUBDIRS = libgssdp $(TOOLS_DIR) tests doc
+SUBDIRS = libgssdp $(TOOLS_DIR) tests doc vala
ACLOCAL_AMFLAGS=${ACLOCAL_FLAGS} -I m4
diff --git a/configure.ac b/configure.ac
index 1c48a0a..a6a1419 100644
--- a/configure.ac
+++ b/configure.ac
@@ -73,6 +73,16 @@ if test "x$enable_debug" = "xyes"; then
fi
GOBJECT_INTROSPECTION_CHECK([0.6.7])
+
+# vapigen
+AS_IF([test "x$found_introspection" = "xyes"],
+ [
+ VALA_PROG_VAPIGEN([0.14])
+ ]
+)
+AM_CONDITIONAL([HAVE_VAPIGEN], [test "x$VAPIGEN" != "x"])
+
+
dnl Check for Win32
AC_MSG_CHECKING([for Win32])
case "$host" in
@@ -94,6 +104,7 @@ libgssdp/Makefile
tools/Makefile
tests/Makefile
tests/gtest/Makefile
+vala/Makefile
doc/Makefile
doc/version.xml
gssdp-1.0.pc
diff --git a/m4/vapigen.m4 b/m4/vapigen.m4
new file mode 100644
index 0000000..d8c86f6
--- /dev/null
+++ b/m4/vapigen.m4
@@ -0,0 +1,41 @@
+
+dnl vala.m4
+dnl
+dnl Copyright 2010 Marc-Andre Lureau
+dnl Copyright 2011 Rodney Dawes <dobey pwns gmail com>
+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
+
+dnl dropped everything but VALA_PROG_VAPIGEN - Jens Georg <mail jensge org>
+
+# Check whether the Vala API Generator exists in `PATH'. If it is found,
+# the variable VAPIGEN is set. Optionally a minimum release number of the
+# generator can be requested.
+#
+# VALA_PROG_VAPIGEN([MINIMUM-VERSION])
+# ------------------------------------
+AC_DEFUN([VALA_PROG_VAPIGEN],
+[AC_PATH_PROG([VAPIGEN], [vapigen], [])
+ AS_IF([test -z "$VAPIGEN"],
+ [AC_MSG_WARN([No Vala API Generator found. You will not be able to generate .vapi files.])],
+ [AS_IF([test -n "$1"],
+ [AC_MSG_CHECKING([$VAPIGEN is at least version $1])
+ am__vapigen_version=`$VAPIGEN --version | sed 's/Vala API Generator *//'`
+ AS_VERSION_COMPARE([$1], ["$am__vapigen_version"],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Vala API Generator $1 not found.])])])])
+])
diff --git a/vala/GSSDP-1.0.metadata b/vala/GSSDP-1.0.metadata
new file mode 100644
index 0000000..d765a74
--- /dev/null
+++ b/vala/GSSDP-1.0.metadata
@@ -0,0 +1,3 @@
+GSSDP cheader_filename="libgssdp/gssdp.h"
+error_quark skip
+Error skip
diff --git a/vala/Makefile.am b/vala/Makefile.am
new file mode 100644
index 0000000..c089e52
--- /dev/null
+++ b/vala/Makefile.am
@@ -0,0 +1,20 @@
+if HAVE_INTROSPECTION
+if HAVE_VAPIGEN
+gssdp-1.0.vapi: gssdp-1.0.stamp
+ @true
+
+gssdp-1.0.stamp: $(top_builddir)/libgssdp/GSSDP-1.0.gir \
+ $(srcdir)/GSSDP-1.0.metadata \
+ $(srcdir)/gssdp-1.0-custom.vala
+ $(AM_V_GEN)$(VAPIGEN) --metadatadir=$(srcdir) \
+ --library=gssdp-1.0 --pkg=gio-2.0 \
+ $(top_builddir)/libgssdp/GSSDP-1.0.gir \
+ $(srcdir)/gssdp-1.0-custom.vala && \
+ echo timestmap > $(@F)
+
+vapidir = $(datadir)/vala/vapi
+vapi_DATA = gssdp-1.0.vapi $(srcdir)/gssdp-1.0.deps
+CLEANFILES = gssdp-1.0.vapi gssdp-1.0.stamp
+EXTRA_DIST = GSSDP-1.0.metadata gssdp-1.0-custom.vala
+endif
+endif
diff --git a/vala/gssdp-1.0-custom.vala b/vala/gssdp-1.0-custom.vala
new file mode 100644
index 0000000..04cd619
--- /dev/null
+++ b/vala/gssdp-1.0-custom.vala
@@ -0,0 +1,9 @@
+// Work-around gnome bug 670673; remove once fixed
+namespace GSSDP {
+[CCode (cheader_filename = "libgssdp/gssdp.h", cprefix = "GSSDP_ERROR_")]
+ public errordomain Error {
+ NO_IP_ADDRESS,
+ FAILED;
+ public static GLib.Quark quark ();
+ }
+}
diff --git a/vala/gssdp-1.0.deps b/vala/gssdp-1.0.deps
new file mode 100644
index 0000000..cd10dfd
--- /dev/null
+++ b/vala/gssdp-1.0.deps
@@ -0,0 +1 @@
+gio-2.0
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]