validate: Add GObject Introspection support
authorThibault Saunier <thibault.saunier@collabora.com>
Wed, 11 Jun 2014 07:23:11 +0000 (09:23 +0200)
committerThibault Saunier <tsaunier@gnome.org>
Fri, 5 Sep 2014 17:00:23 +0000 (19:00 +0200)
validate/gst/validate/Makefile.am

index e887d0eee02c0d88a1a56f895af70943082f6c49..e41a980add6cca2202a89152f047c00328700c9f 100644 (file)
@@ -18,12 +18,9 @@ libgstvalidate_@GST_API_VERSION@_la_SOURCES = \
     validate.c
 
 libgstvalidate_@GST_API_VERSION@include_HEADERS = \
-    validate.h \
-       gettext.h \
+       validate.h \
        gst-validate-bin-monitor.h \
        gst-validate-element-monitor.h \
-       gst-validate-i18n-lib.h \
-       gst-validate-internal.h \
        gst-validate-monitor-factory.h \
        gst-validate-monitor.h \
        gst-validate-override.h \
@@ -34,10 +31,15 @@ libgstvalidate_@GST_API_VERSION@include_HEADERS = \
        gst-validate-runner.h \
        gst-validate-scenario.h \
        gst-validate-utils.h \
+       gst-validate-media-info.h
+
+noinst_HEADERS =               \
+       gettext.h \
+       gst-validate-i18n-lib.h \
        media-descriptor.h \
        media-descriptor-writer.h \
-       media-descriptor-parser.h \
-       gst-validate-media-info.h
+       gst-validate-internal.h \
+       media-descriptor-parser.h
 
 
 lib_LTLIBRARIES = libgstvalidate-@GST_API_VERSION@.la
@@ -52,3 +54,64 @@ libgstvalidate_@GST_API_VERSION@_la_LIBADD = \
 libgstvalidate_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/validate
 
 CLEANFILES =
+
+if HAVE_INTROSPECTION
+BUILT_GIRSOURCES = GstValidate-@GST_API_VERSION@.gir
+
+gir_headers=$(patsubst %,$(srcdir)/%, $(libgstvalidate_@GST_API_VERSION@include_HEADERS))
+gir_headers+=$(patsubst %,$(builddir)/%, $(built_header_make))
+gir_sources=$(patsubst %,$(srcdir)/%, $(libgstvalidate_@GST_API_VERSION@_la_SOURCES))
+gir_sources+=$(patsubst %,$(builddir)/%, $(built_source_make))
+gir_cincludes=$(patsubst %,--c-include='gst/validate/%',$(libgstvalidate@GST_API_VERSION@include_HEADERS))
+
+GstValidate-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvalidate-@GST_API_VERSION@.la
+               $(INTROSPECTION_SCANNER) -v --namespace GstValidate \
+               --nsversion=@GST_API_VERSION@ \
+               --warn-all \
+               $(gir_cincludes) \
+               -I$(top_srcdir) \
+               -I$(top_builddir) \
+               --library=libgstvalidate-@GST_API_VERSION@.la \
+               --include=GLib-2.0 \
+               --include=GstVideo-@GST_API_VERSION@ \
+               --include=GstPbutils-@GST_API_VERSION@ \
+               --include=GObject-2.0 \
+               --include=GModule-2.0 \
+               --include=GLib-2.0 \
+               --libtool="${LIBTOOL}" \
+               --pkg gstreamer-@GST_API_VERSION@ \
+               --pkg gstreamer-pbutils-@GST_API_VERSION@ \
+               --pkg gstreamer-controller-@GST_API_VERSION@ \
+               --pkg glib-2.0 \
+               --pkg gobject-2.0 \
+               --pkg-export gstvalidate-@GST_API_VERSION@ \
+               --add-init-section="gst_init(NULL, NULL);" \
+               --output $@ \
+               $(gir_headers) \
+               $(gir_sources)
+
+# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
+# install anything - we need to install inside our prefix.
+girdir = $(datadir)/gir-1.0
+gir_DATA = $(BUILT_GIRSOURCES)
+
+typelibsdir = $(libdir)/girepository-1.0/
+
+typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+
+%.typelib: %.gir $(INTROSPECTION_COMPILER)
+       $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+               $(INTROSPECTION_COMPILER) \
+               --includedir=$(srcdir) \
+               --includedir=$(srcdir)/../video \
+               --includedir=$(builddir) \
+               --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+               --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-pbutils-@GST_API_VERSION@` \
+               --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_API_VERSION@` \
+               --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+               --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-controller-@GST_API_VERSION@` \
+               --includedir=`$(PKG_CONFIG) --variable=girdir gio-2.0` \
+               $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+endif
+
+CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)