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

14 files changed:
pkgconfig/Makefile.am
pkgconfig/gstreamer-allocators-uninstalled.pc.in
pkgconfig/gstreamer-app-uninstalled.pc.in
pkgconfig/gstreamer-audio-uninstalled.pc.in
pkgconfig/gstreamer-fft-uninstalled.pc.in
pkgconfig/gstreamer-pbutils-uninstalled.pc.in
pkgconfig/gstreamer-plugins-base-uninstalled.pc.in
pkgconfig/gstreamer-riff-uninstalled.pc.in
pkgconfig/gstreamer-rtp-uninstalled.pc.in
pkgconfig/gstreamer-rtsp-uninstalled.pc.in
pkgconfig/gstreamer-sdp-uninstalled.pc.in
pkgconfig/gstreamer-tag-uninstalled.pc.in
pkgconfig/gstreamer-video-uninstalled.pc.in
pkgconfig/meson.build

index 9976f95..7fa2365 100644 (file)
@@ -36,7 +36,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|[@]allocatorslibdir[@]|$(abs_top_builddir)/gst-libs/gst/allocators/.libs|" \
+               -e "s|[@]audiolibdir[@]|$(abs_top_builddir)/gst-libs/gst/audio/.libs|" \
+               -e "s|[@]applibdir[@]|$(abs_top_builddir)/gst-libs/gst/app/.libs|" \
+               -e "s|[@]fftlibdir[@]|$(abs_top_builddir)/gst-libs/gst/fft/.libs|" \
+               -e "s|[@]pbutilslibdir[@]|$(abs_top_builddir)/gst-libs/gst/pbutils/.libs|" \
+               -e "s|[@]rifflibdir[@]|$(abs_top_builddir)/gst-libs/gst/riff/.libs|" \
+               -e "s|[@]rtplibdir[@]|$(abs_top_builddir)/gst-libs/gst/rtp/.libs|" \
+               -e "s|[@]rtsplibdir[@]|$(abs_top_builddir)/gst-libs/gst/rtsp/.libs|" \
+               -e "s|[@]sdplibdir[@]|$(abs_top_builddir)/gst-libs/gst/sdp/.libs|" \
+               -e "s|[@]taglibdir[@]|$(abs_top_builddir)/gst-libs/gst/tag/.libs|" \
+               -e "s|[@]videolibdir[@]|$(abs_top_builddir)/gst-libs/gst/video/.libs|" \
+               $< > $@.tmp && mv $@.tmp $@
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = $(pcverfiles)
index 2723594..58739e2 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/gst/allocators/.libs
+libdir=@allocatorslibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/allocators
index 0fefc9b..419ba24 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/gst/app/.libs
+libdir=@applibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/app
index 3fadf66..b6528bb 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/gst/audio/.libs
+libdir=@audiolibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/audio
index 1b92434..8593a34 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/gst/fft/.libs
+libdir=@fftlibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/fft
index e89187d..df85b1f 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/gst/pbutils/.libs
+libdir=@pbutilslibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/pbutils
index eaf378b..d9ff536 100644 (file)
@@ -10,7 +10,7 @@ Name: GStreamer Base Plugins Libraries, Uninstalled
 Description: Streaming media framework, base plugins libraries, uninstalled
 Version: @VERSION@
 Requires: gstreamer-@GST_API_VERSION@
-Libs: -L@abs_top_builddir@/gst-libs/gst/allocators/.libs -L@abs_top_builddir@/gst-libs/gst/app/.libs -L@abs_top_builddir@/gst-libs/gst/audio/.libs -L@abs_top_builddir@/gst-libs/gst/fft/.libs -L@abs_top_builddir@/gst-libs/gst/pbutils/.libs -L@abs_top_builddir@/gst-libs/gst/riff/.libs -L@abs_top_builddir@/gst-libs/gst/rtp/.libs -L@abs_top_builddir@/gst-libs/gst/rtsp/.libs -L@abs_top_builddir@/gst-libs/gst/sdp/.libs -L@abs_top_builddir@/gst-libs/gst/tag/.libs -L@abs_top_builddir@/gst-libs/gst/video/.libs
+Libs: -L@allocatorslibdir@ -L@applibdir@ -L@audiolibdir@ -L@fftlibdir@ -L@pbutilslibdir@ -L@rifflibdir@ -L@rtplibdir@ -L@rtsplibdir@ -L@sdplibdir@ -L@taglibdir@ -L@videolibdir@
 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs
 
 libraries=allocators app audio fft pbutils riff rtp rtsp sdp tag video
index 4f9095c..117cc7f 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/gst/riff/.libs
+libdir=@rifflibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/riff
index c9592e3..e0963f4 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/gst/rtp/.libs
+libdir=@rtplibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/rtp
index 04d4837..80869e5 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/gst/rtsp/.libs
+libdir=@rtsplibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/rtsp
index 18b3442..af1aa44 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/gst/sdp/.libs
+libdir=@sdplibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/sdp
index 8e97fe1..cb097a1 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/gst/tag/.libs
+libdir=@taglibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/tag
index ae71ad2..59140a1 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/gst/video/.libs
+libdir=@videolibdir@
 # includedir is builddir because it is used to find gstconfig.h in places
 includedir=@abs_top_builddir@/gst-libs
 girdir=@abs_top_builddir@/gst-libs/gst/video
index 578f39e..ebc23f7 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('allocatorslibdir', join_paths(meson.build_root(), gstallocators.outdir()))
+pkgconf.set('applibdir', join_paths(meson.build_root(), gstapp.outdir()))
+pkgconf.set('audiolibdir', join_paths(meson.build_root(), gstaudio.outdir()))
+pkgconf.set('fftlibdir', join_paths(meson.build_root(), gstfft.outdir()))
+pkgconf.set('pbutilslibdir', join_paths(meson.build_root(), pbutils.outdir()))
+pkgconf.set('rifflibdir', join_paths(meson.build_root(), gstriff.outdir()))
+pkgconf.set('rtplibdir', join_paths(meson.build_root(), gst_rtp.outdir()))
+pkgconf.set('rtsplibdir', join_paths(meson.build_root(), gst_rtsp.outdir()))
+pkgconf.set('sdplibdir', join_paths(meson.build_root(), gstsdp.outdir()))
+pkgconf.set('taglibdir', join_paths(meson.build_root(), gsttag.outdir()))
+pkgconf.set('videolibdir', join_paths(meson.build_root(), gstvideo.outdir()))
+
 pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir'))
 
 pkg_files = [
@@ -32,4 +47,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