meson: generate pkg-config -uninstalled pc files

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
This commit is contained in:
Guillaume Desmottes 2017-01-04 16:51:10 +01:00 committed by Thibault Saunier
parent eb728ad13b
commit e92837b6e4
12 changed files with 51 additions and 17 deletions

View 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)

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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