meson: generate pkg-config -uninstalled pc files
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 4 Jan 2017 11:10:45 +0000 (12:10 +0100)
committerThibault Saunier <thibault.saunier@osg.samsung.com>
Thu, 5 Jan 2017 12:18:16 +0000 (09:18 -0300)
Generating those files is useful for users building the GStreamer stack
using meson and having to link it to another project which is still
using the autotools.

https://bugzilla.gnome.org/show_bug.cgi?id=776810

pkgconfig/Makefile.am
pkgconfig/gstreamer-base-uninstalled.pc.in
pkgconfig/gstreamer-check-uninstalled.pc.in
pkgconfig/gstreamer-controller-uninstalled.pc.in
pkgconfig/gstreamer-net-uninstalled.pc.in
pkgconfig/gstreamer-uninstalled.pc.in
pkgconfig/meson.build

index 5da63ed..78a1e65 100644 (file)
@@ -31,7 +31,15 @@ cp_verbose_0 = @echo "  CP     $@";
 %-@GST_API_VERSION@.pc: %.pc
        $(cp_verbose_0)cp $< $@
 %-@GST_API_VERSION@-uninstalled.pc: %-uninstalled.pc
-       $(cp_verbose_0)cp $< $@
+### the uninstalled libdir is depend of the build system used so set it here
+### rather than hardcoding it in the file directly.
+       $(AM_V_GEN) sed \
+               -e "s|[@]gstlibdir[@]|$(abs_top_builddir)/gst/.libs|" \
+               -e "s|[@]checklibdir[@]|$(abs_top_builddir)/libs/gst/check/.libs|" \
+               -e "s|[@]baselibdir[@]|$(abs_top_builddir)/libs/gst/base/.libs|" \
+               -e "s|[@]netlibdir[@]|$(abs_top_builddir)/libs/gst/net/.libs|" \
+               -e "s|[@]controllerlibdir[@]|$(abs_top_builddir)/libs/gst/controller/.libs|" \
+               $< > $@.tmp && mv $@.tmp $@
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = $(pcfiles)
index f9a4e1f..08759f1 100644 (file)
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=@abs_top_builddir@/libs/gst/base/.libs
+libdir=@baselibdir@
 includedir=
 girdir=@abs_top_builddir@/libs/gst/base
 typelibdir=@abs_top_builddir@/libs/gst/base
index 3aeaf77..85c2903 100644 (file)
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=@abs_top_builddir@/libs/gst/check/.libs
+libdir=@checklibdir@
 includedir=
 girdir=@abs_top_builddir@/libs/gst/check
 typelibdir=@abs_top_builddir@/libs/gst/check
index b7227e1..97983e7 100644 (file)
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=@abs_top_builddir@/libs/gst/controller/.libs
+libdir=@controllerlibdir@
 includedir=
 girdir=@abs_top_builddir@/libs/gst/controller
 typelibdir=@abs_top_builddir@/libs/gst/controller
index d3b1459..5d390c2 100644 (file)
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=@abs_top_builddir@/libs/gst/net/.libs
+libdir=@netlibdir@
 includedir=
 girdir=@abs_top_builddir@/libs/gst/net
 typelibdir=@abs_top_builddir@/libs/gst/net
index 16c2a04..8f69dd5 100644 (file)
@@ -1,7 +1,7 @@
 # the standard variables don't make sense for an uninstalled copy
 prefix=
 exec_prefix=
-libdir=@abs_top_builddir@/gst/.libs
+libdir=@gstlibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@
 toolsdir=@abs_top_builddir@/tools
index 0c90d74..ff0083c 100644 (file)
@@ -7,6 +7,15 @@ pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
 pkgconf.set('GST_API_VERSION', apiversion)
 pkgconf.set('VERSION', gst_version)
 
+# needed for generating -uninstalled.pc files
+pkgconf.set('abs_top_builddir', join_paths(meson.current_build_dir(), '..'))
+pkgconf.set('abs_top_srcdir', join_paths(meson.current_source_dir(), '..'))
+pkgconf.set('gstlibdir', join_paths(meson.build_root(), libgst.outdir()))
+pkgconf.set('checklibdir', join_paths(meson.build_root(), gst_check.outdir()))
+pkgconf.set('baselibdir', join_paths(meson.build_root(), gst_base.outdir()))
+pkgconf.set('controllerlibdir', join_paths(meson.build_root(), gst_controller.outdir()))
+pkgconf.set('netlibdir', join_paths(meson.build_root(), gst_net.outdir()))
+
 pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir'))
 
 pkg_files = ['gstreamer-base',
@@ -23,4 +32,10 @@ foreach p : pkg_files
     output : outfile,
     configuration : pkgconf,
     install_dir : pkg_install_dir)
+
+  infile = p + '-uninstalled.pc.in'
+  outfile = p + '-1.0-uninstalled.pc'
+  configure_file(input : infile,
+    output : outfile,
+    configuration : pkgconf)
 endforeach