From 45ffbdec0764ca41c6d05c185351a201bec1058a Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 11 Jun 2014 09:23:11 +0200 Subject: [PATCH] validate: Add GObject Introspection support --- validate/gst/validate/Makefile.am | 75 ++++++++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 6 deletions(-) diff --git a/validate/gst/validate/Makefile.am b/validate/gst/validate/Makefile.am index e887d0eee0..e41a980add 100644 --- a/validate/gst/validate/Makefile.am +++ b/validate/gst/validate/Makefile.am @@ -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)