Bug 649762 - Add support for Vala bindings
authorRaul Gutierrez Segales <raul.gutierrez.segales@collabora.co.uk>
Fri, 13 May 2011 01:41:57 +0000 (21:41 -0400)
committerMatthew Barnes <mbarnes@redhat.com>
Fri, 13 May 2011 01:42:52 +0000 (21:42 -0400)
Makefile.am
configure.ac
vala/Makefile.am [new file with mode: 0644]
vala/libebook-1.2.deps [new file with mode: 0644]

index 9a4b309..66e0af0 100644 (file)
@@ -9,6 +9,12 @@ endif
 SUBDIRS = libedataserver libebackend camel addressbook $(CALENDAR_DIR) libedataserverui tests docs art po
 DIST_SUBDIRS = libedataserver libebackend camel addressbook calendar libedataserverui tests docs art po
 
+if HAVE_INTROSPECTION
+if HAVE_VALA
+SUBDIRS += vala
+endif
+endif
+
 %-$(API_VERSION).pc: %.pc
         cp $< $@
 
index aa40f61..1fb23c2 100644 (file)
@@ -1410,6 +1410,39 @@ fi
 GOBJECT_INTROSPECTION_CHECK([0.9.12])
 
 dnl ******************************
+dnl Vala binding
+dnl ******************************
+AC_ARG_ENABLE(vala-bindings,
+        AC_HELP_STRING([--enable-vala-bindings],
+        [build the EXPERIMENTAL Vala bindings]),
+        enable_vala_bindings=$enableval,
+        enable_vala_bindings=no)
+
+if test x$enable_vala_bindings = xyes; then
+  if test "x$INTROSPECTION_SCANNER" = x; then
+    AC_MSG_ERROR([GObject-Introspection must be enabled for Vala bindings])
+  fi
+
+  AM_PROG_VALAC([0.12.0])
+  have_vala=yes
+
+  AC_PATH_PROG(VALAC, valac, valac)
+  AC_SUBST(VALAC)
+  AC_SUBST(VALAFLAGS)
+
+  AC_PATH_PROG([VAPIGEN], [vapigen], [false])
+
+  if test "x$VAPIGEN" = "xfalse"; then
+    AC_MSG_ERROR([vapigen not found. Was vala compiled with --enable-vapigen?])
+  fi
+
+  AC_SUBST(VAPIGEN)
+fi
+
+AM_CONDITIONAL([HAVE_VALA], [test "x$have_vala" = "xyes"])
+AC_SUBST(HAVE_VALA)
+
+dnl ******************************
 dnl Makefiles
 dnl ******************************
 export privlibdir
@@ -1490,6 +1523,7 @@ docs/reference/libedataserver/Makefile
 docs/reference/libedataserverui/Makefile
 docs/reference/libebackend/Makefile
 po/Makefile.in
+vala/Makefile
 ])
 AC_OUTPUT
 
diff --git a/vala/Makefile.am b/vala/Makefile.am
new file mode 100644 (file)
index 0000000..4ff18eb
--- /dev/null
@@ -0,0 +1,37 @@
+vapidir = $(datarootdir)/vala/vapi
+vapi_DATA = \
+       libedataserver-1.2.vapi \
+       libebook-1.2.vapi \
+       $(NULL)
+dist_vapi_DATA = \
+       libebook-1.2.deps \
+       $(NULL)
+
+BUILT_SOURCES = \
+       $(vapi_DATA) \
+       $(NULL)
+
+pkgconfigdir = ${libdir}/pkgconfig
+
+libedataserver-1.2.vapi: $(top_builddir)/libedataserver/EDataServer-1.2.gir
+       $(VAPIGEN_V)$(VAPIGEN) \
+               --library libedataserver-1.2 \
+               $< \
+               $(NULL)
+
+libebook-1.2.vapi: $(top_builddir)/addressbook/libebook/EBook-1.2.gir libedataserver-1.2.vapi
+       $(VAPIGEN_V)$(VAPIGEN) \
+               --vapidir=. \
+               --pkg libedataserver-1.2 \
+               --library libebook-1.2 \
+               $< \
+               $(NULL)
+
+CLEANFILES = \
+       $(BUILT_SOURCES) \
+       $(NULL)
+
+# set up the verbosity rules to avoid some build noise
+VAPIGEN_V = $(VAPIGEN_V_$(V))
+VAPIGEN_V_ = $(VAPIGEN_V_$(AM_DEFAULT_VERBOSITY))
+VAPIGEN_V_0 = @echo "  VAPIG " $^;
diff --git a/vala/libebook-1.2.deps b/vala/libebook-1.2.deps
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+