diff options
author | Evan Nemerson <evan@coeus-group.com> | 2013-02-21 21:53:45 -0800 |
---|---|---|
committer | Philip Withnall <philip@tecnocode.co.uk> | 2013-02-24 09:16:08 +0000 |
commit | 2186969875520d535704f61280f62145932b4948 (patch) | |
tree | fdeb83193d5da5786917930c51ff372d9dcfb153 | |
parent | 0fd7b768d14350854db00ad393ddc33e05681e1a (diff) | |
download | libgdata-2186969875520d535704f61280f62145932b4948.tar.gz |
build: Add Vala bindings
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=693865
-rw-r--r-- | Makefile.am | 27 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | gdata/GData-0.0.metadata | 11 | ||||
-rw-r--r-- | m4/vapigen.m4 | 101 |
4 files changed, 141 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index 2cb013d3..161dd8df 100644 --- a/Makefile.am +++ b/Makefile.am @@ -513,6 +513,33 @@ CLEANFILES += $(gir_DATA) $(typelib_DATA) DISTCHECK_CONFIGURE_FLAGS += --enable-introspection EXTRA_DIST += introspection.m4 + +if ENABLE_VAPIGEN +-include $(VAPIGEN_MAKEFILE) + +# Note: The VAPI file name has to match the pkg-config file name. +# If we break API and add a version number to the pkg-config file name, the VAPI can be changed to match. +# See: https://bugzilla.gnome.org/show_bug.cgi?id=693865 +gdata/libgdata.vapi: gdata/GData-@GDATA_API_VERSION_MAJOR@.@GDATA_API_VERSION_MINOR@.gir gdata/GData-@GDATA_API_VERSION_MAJOR@.@GDATA_API_VERSION_MINOR@.metadata + +VAPIGEN_VAPIS = gdata/libgdata.vapi + +gdata_libgdata_vapi_DEPS = libxml-2.0 libsoup-2.4 +gdata_libgdata_vapi_METADATADIRS = $(srcdir)/gdata +gdata_libgdata_vapi_FILES = gdata/GData-@GDATA_API_VERSION_MAJOR@.@GDATA_API_VERSION_MINOR@.gir + +gdata/libgdata.deps: + $(AM_V_GEN) for pkg in $(libgdata_vapi_DEPS); do \ + echo $$pkg >> $@; \ + done + +vapidir = $(datadir)/vala/vapi +vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps) + +CLEANFILES += $(vapi_DATA) + +EXTRA_DIST += gdata/GData-@GDATA_API_VERSION_MAJOR@.@GDATA_API_VERSION_MINOR@.metadata +endif endif # Code coverage diff --git a/configure.ac b/configure.ac index f66999b1..681e1784 100644 --- a/configure.ac +++ b/configure.ac @@ -143,6 +143,8 @@ GNOME_MAINTAINER_MODE_DEFINES GOBJECT_INTROSPECTION_CHECK([0.9.7]) +VAPIGEN_CHECK() + AC_SUBST([AM_CPPFLAGS]) AC_SUBST([AM_CFLAGS]) AC_SUBST([AM_CXXFLAGS]) diff --git a/gdata/GData-0.0.metadata b/gdata/GData-0.0.metadata new file mode 100644 index 00000000..2995eda1 --- /dev/null +++ b/gdata/GData-0.0.metadata @@ -0,0 +1,11 @@ +Color struct + +Parsable.get_xml#method skip +Query.get_query_uri#method skip +DOCUMENTS_PRESENTATION_* name="DOCUMENTS_PRESENTATION_(.+)" parent="GData.DocumentsPresentationFormat" +DOCUMENTS_TEXT_* name="DOCUMENTS_TEXT_(.+)" parent="GData.DocumentsTextFormat" +DOCUMENTS_SPREADSHEET_* name="DOCUMENTS_SPREADSHEET_(.+)" parent="GData.DocumentsSpreadsheetFormat" +CONTACTS_GENDER_* name="CONTACTS_GENDER_(.+)" parent="GData.ContactsGender" +CONTACTS_GROUP_* name="CONTACTS_GROUP_(.+)" parent="GData.ContactsGroupType" +CONTACTS_PRIORITY_* name="CONTACTS_PRIORITY_(.+)" parent="GData.ContactsPriority" +CONTACTS_SENSITIVITY_* name="CONTACTS_SENSITIVITY_(.+)" parent="GData.ContactsSensitivity"
\ No newline at end of file diff --git a/m4/vapigen.m4 b/m4/vapigen.m4 new file mode 100644 index 00000000..2c435e74 --- /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") +]) |