meson: generate pkg-config -uninstalled pc files
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 4 Jan 2017 15:51:10 +0000 (16:51 +0100)
committerThibault Saunier <thibault.saunier@osg.samsung.com>
Thu, 5 Jan 2017 12:52:47 +0000 (09:52 -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.

While doing so, fix some -uninstalled pc files which were using a
suspicious 'pcfiledir' which was never replaced or defined.

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

12 files changed:
pkgconfig/Makefile.am
pkgconfig/gstreamer-bad-audio-uninstalled.pc.in
pkgconfig/gstreamer-bad-base-uninstalled.pc.in
pkgconfig/gstreamer-bad-video-uninstalled.pc.in
pkgconfig/gstreamer-codecparsers-uninstalled.pc.in
pkgconfig/gstreamer-gl-uninstalled.pc.in
pkgconfig/gstreamer-insertbin-uninstalled.pc.in
pkgconfig/gstreamer-mpegts-uninstalled.pc.in
pkgconfig/gstreamer-player-uninstalled.pc.in
pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in
pkgconfig/gstreamer-wayland-uninstalled.pc.in
pkgconfig/meson.build

index 88c7e5204e84957928aa3940fd7561c14145d04d..b64837cc6e0a75f4ed4932087e913c88578e1c4c 100644 (file)
@@ -35,7 +35,21 @@ 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|[@]audiolibdir[@]|$(abs_top_builddir)/gst-libs/gst/audio/.libs|" \
+               -e "s|[@]baselibdir[@]|$(abs_top_builddir)/gst-libs/gst/base/.libs|" \
+               -e "s|[@]videolibdir[@]|$(abs_top_builddir)/gst-libs/gst/video/.libs|" \
+               -e "s|[@]codecparserslibdir[@]|$(abs_top_builddir)/gst-libs/gst/codecparsers/.libs|" \
+               -e "s|[@]gllibdir[@]|$(abs_top_builddir)/gst-libs/gst/gl/.libs|" \
+               -e "s|[@]insertbinlibdir[@]|$(abs_top_builddir)/gst-libs/gst/insertbin/.libs|" \
+               -e "s|[@]mpegtslibdir[@]|$(abs_top_builddir)/gst-libs/gst/mpegts/.libs|" \
+               -e "s|[@]playerlibdir[@]|$(abs_top_builddir)/gst-libs/gst/player/.libs|" \
+               -e "s|[@]waylandlibdir[@]|$(abs_top_builddir)/gst-libs/gst/wayland/.libs|" \
+               -e "s|[@]basecamerabinsrclibdir[@]|$(abs_top_builddir)/gst-libs/gst/basecamerabinsrc/.libs|" \
+               -e "s|[@]photographylibdir[@]|$(abs_top_builddir)/gst-libs/gst/interfaces/.libs|" \
+               $< > $@.tmp && mv $@.tmp $@
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = $(pcverfiles)
index 6b95364ee9f3b5af7bc56992997abc276b856fef..e2fa1151c7534407f351e17715b6151ea632d06c 100644 (file)
@@ -1,6 +1,6 @@
 prefix=
 exec_prefix=
-libdir=@abs_top_builddir@/gst-libs/gst/audio/.libs
+libdir=@audiolibdir@
 includedir=@abs_top_srcdir@/gst-libs
 
 Name: GStreamer bad audio library, uninstalled
index e11a01bccf1ddf31beaf3ff51d0a1372739b2b61..b227027b3919147eaf1461fff4b9ef244decdb0b 100644 (file)
@@ -1,6 +1,6 @@
 prefix=
 exec_prefix=
-libdir=@abs_top_builddir@/gst-libs/gst/base/.libs
+libdir=@baselibdir@
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/base
 typelibdir=@abs_top_builddir@/gst-libs/gst/base
index f9ae7bf4035fef6d2c3ecd748871dfa850fd780e..09ccdfea7ea8e3add8ac56c87e642ad1cdb72d3c 100644 (file)
@@ -1,6 +1,6 @@
 prefix=
 exec_prefix=
-libdir=@abs_top_builddir@/gst-libs/gst/video/.libs
+libdir=@videolibdir@
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/video
 typelibdir=@abs_top_builddir@/gst-libs/gst/video
index 71ed7713e54831d1453d5a67c1293fd285b2a5ac..fa39c08cfcadf6b99474398bf0c7cf7f49140c2c 100644 (file)
@@ -1,7 +1,7 @@
 prefix=
 exec_prefix=
-libdir=${pcfiledir}/../gst-libs/gst/codecparsers/.libs
-includedir=${pcfiledir}/../gst-libs
+libdir=@codecparserslibdir@
+includedir=@abs_top_builddir@/gst-libs
 
 Name: GStreamer codec parsers, Uninstalled
 Description: Bitstream parsers for GStreamer elements, uninstalled
index dac4cda3fb955256857a9b1e12f2f566d1fa9be5..1d2955936e663558df5944aa79a673a8409cc6a3 100644 (file)
@@ -1,6 +1,6 @@
 prefix=
 exec_prefix=
-libdir=@abs_top_builddir@/gst-libs/gst/gl/.libs
+libdir=@gllibdir@
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/base
 typelibdir=@abs_top_builddir@/gst-libs/gst/base
index 1a535aaca761ca68d9b75bbc381d1a526aa69954..328e77b26528189f9e68a5ecae0386c72eba2cf2 100644 (file)
@@ -1,7 +1,7 @@
 prefix=
 exec_prefix=
-libdir=${pcfiledir}/../gst-libs/gst/insertbin/.libs
-includedir=${pcfiledir}/../gst-libs
+libdir=@insertbinlibdir@
+includedir=@abs_top_srcdir@/gst-libs
 
 Name: GStreamer Insert Bin, Uninstalled
 Description: Bin to automatically and insertally link elements, uninstalled
index 179996c2c53a1af8a76d05320d702a2e99c31580..abe7f0b32b36925522333a6509c5bb68c85dc778 100644 (file)
@@ -1,7 +1,7 @@
 prefix=
 exec_prefix=
-libdir=${pcfiledir}/../gst-libs/gst/mpegts/.libs
-includedir=${pcfiledir}/../gst-libs
+libdir=@mpegtslibdir@
+includedir=@abs_top_srcdir@/gst-libs
 
 Name: GStreamer MPEG-TS, Uninstalled
 Description: GStreamer MPEG-TS support, uninstalled
index 5c2c0d778935b0e0c8716e960accd4cefb400ee6..0cae959d2fdcd584800f30de2b3a483c905de30f 100644 (file)
@@ -1,7 +1,7 @@
 prefix=
 exec_prefix=
-libdir=${pcfiledir}/../gst-libs/gst/player/.libs
-includedir=${pcfiledir}/../gst-libs
+libdir=@playerlibdir@
+includedir=@abs_top_srcdir@/gst-libs
 
 Name: GStreamer Player, Uninstalled
 Description: GStreamer Player convenience library, uninstalled
index df9a9c5046c561c0b2ed801a293b3aec944aef02..84f2441ea8ad6b5331e58c86e5cb73a13f271081 100644 (file)
@@ -10,5 +10,5 @@ Name: GStreamer Bad Plugin libraries, Uninstalled
 Description: Streaming media framework, bad plugins libraries, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@
-Libs: -L@abs_top_builddir@/gst-libs/gst/audio/.libs -L@abs_top_builddir@/gst-libs/gst/basecamerabinsrc/.libs -L@abs_top_builddir@/gst-libs/gst/codecparsers/.libs -L@abs_top_builddir@/gst-libs/gst/gl/.libs -L@abs_top_builddir@/gst-libs/gst/insertbin/.libs -L@abs_top_builddir@/gst-libs/gst/interfaces/.libs -L@abs_top_builddir@/gst-libs/gst/mpegts/.libs -L@abs_top_builddir@/gst-libs/gst/player/.libs -L@abs_top_builddir@/gst-libs/gst/signalprocessor/.libs -L@abs_top_builddir@/gst-libs/gst/video/.libs -L@abs_top_builddir@/gst-libs/gst/wayland/.libs
+Libs: -L@audiolibdir@ -L@basecamerabinsrclibdir@ -L@codecparserslibdir@ -L@gllibdir@ -L@insertbinlibdir@ -L@photographylibdir@ -L@mpegtslibdir@ -L@playerlibdir@ -L@videolibdir@ -L@waylandlibdir@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
index 80d6e1b43d432e58b91c40c8b19e49224b9c1bc9..2661c1e38aaa4da4c03f13b100cf0490556ba491 100644 (file)
@@ -1,7 +1,7 @@
 prefix=
 exec_prefix=
-libdir=${pcfiledir}/../gst-libs/gst/wayland/.libs
-includedir=${pcfiledir}/../gst-libs
+libdir=@waylandlibdir@
+includedir=@abs_top_srcdir@/gst-libs
 
 Name: GStreamer Wayland, Uninstalled
 Description: GStreamer Wayland support, uninstalled
index e430462045675300469ef7ed9549c75293200486..c3df68643553cd98d2566d8a21583bf2cd4618a2 100644 (file)
@@ -7,6 +7,21 @@ pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
 pkgconf.set('GST_API_VERSION', api_version)
 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('audiolibdir', join_paths(meson.build_root(), gstbadaudio.outdir()))
+pkgconf.set('baselibdir', join_paths(meson.build_root(), gstbadbase.outdir()))
+pkgconf.set('videolibdir', join_paths(meson.build_root(), gstbadvideo.outdir()))
+pkgconf.set('codecparserslibdir', join_paths(meson.build_root(), gstcodecparsers.outdir()))
+pkgconf.set('gllibdir', join_paths(meson.build_root(), gstgl.outdir()))
+pkgconf.set('insertbinlibdir', join_paths(meson.build_root(), gstinsertbin.outdir()))
+pkgconf.set('mpegtslibdir', join_paths(meson.build_root(), gstmpegts.outdir()))
+pkgconf.set('playerlibdir', join_paths(meson.build_root(), gstplayer.outdir()))
+pkgconf.set('waylandlibdir', join_paths(meson.build_root(), gstwayland.outdir()))
+pkgconf.set('basecamerabinsrclibdir', join_paths(meson.build_root(), gstbasecamerabin.outdir()))
+pkgconf.set('photographylibdir', join_paths(meson.build_root(), gstphotography.outdir()))
+
 pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir'))
 
 pkg_libs = [
@@ -25,7 +40,6 @@ if build_gstgl
   pkg_libs += 'gl'
 endif
 
-# FIXME: -uninstalled.pc files (if still needed?)
 foreach p : pkg_libs
   infile = 'gstreamer-@0@.pc.in'.format(p)
   outfile = 'gstreamer-@0@-@1@.pc'.format(p, api_version)
@@ -33,4 +47,10 @@ foreach p : pkg_libs
     output : outfile,
     configuration : pkgconf,
     install_dir : pkg_install_dir)
+
+  infile = 'gstreamer-@0@-uninstalled.pc.in'.format(p)
+  outfile = 'gstreamer-@0@-@1@-uninstalled.pc'.format(p, api_version)
+  configure_file(input : infile,
+    output : outfile,
+    configuration : pkgconf)
 endforeach