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 %-@GST_API_VERSION@.pc: %.pc
$(cp_verbose_0)cp $< $@ $(cp_verbose_0)cp $< $@
%-@GST_API_VERSION@-uninstalled.pc: %-uninstalled.pc %-@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 pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = $(pcverfiles) pkgconfig_DATA = $(pcverfiles)

View file

@ -1,6 +1,6 @@
prefix= prefix=
exec_prefix= exec_prefix=
libdir=@abs_top_builddir@/gst-libs/gst/audio/.libs libdir=@audiolibdir@
includedir=@abs_top_srcdir@/gst-libs includedir=@abs_top_srcdir@/gst-libs
Name: GStreamer bad audio library, uninstalled Name: GStreamer bad audio library, uninstalled

View file

@ -1,6 +1,6 @@
prefix= prefix=
exec_prefix= exec_prefix=
libdir=@abs_top_builddir@/gst-libs/gst/base/.libs libdir=@baselibdir@
includedir=@abs_top_builddir@/gst-libs includedir=@abs_top_builddir@/gst-libs
girdir=@abs_top_builddir@/gst-libs/gst/base girdir=@abs_top_builddir@/gst-libs/gst/base
typelibdir=@abs_top_builddir@/gst-libs/gst/base typelibdir=@abs_top_builddir@/gst-libs/gst/base

View file

@ -1,6 +1,6 @@
prefix= prefix=
exec_prefix= exec_prefix=
libdir=@abs_top_builddir@/gst-libs/gst/video/.libs libdir=@videolibdir@
includedir=@abs_top_builddir@/gst-libs includedir=@abs_top_builddir@/gst-libs
girdir=@abs_top_builddir@/gst-libs/gst/video girdir=@abs_top_builddir@/gst-libs/gst/video
typelibdir=@abs_top_builddir@/gst-libs/gst/video typelibdir=@abs_top_builddir@/gst-libs/gst/video

View file

@ -1,7 +1,7 @@
prefix= prefix=
exec_prefix= exec_prefix=
libdir=${pcfiledir}/../gst-libs/gst/codecparsers/.libs libdir=@codecparserslibdir@
includedir=${pcfiledir}/../gst-libs includedir=@abs_top_builddir@/gst-libs
Name: GStreamer codec parsers, Uninstalled Name: GStreamer codec parsers, Uninstalled
Description: Bitstream parsers for GStreamer elements, uninstalled Description: Bitstream parsers for GStreamer elements, uninstalled

View file

@ -1,6 +1,6 @@
prefix= prefix=
exec_prefix= exec_prefix=
libdir=@abs_top_builddir@/gst-libs/gst/gl/.libs libdir=@gllibdir@
includedir=@abs_top_builddir@/gst-libs includedir=@abs_top_builddir@/gst-libs
girdir=@abs_top_builddir@/gst-libs/gst/base girdir=@abs_top_builddir@/gst-libs/gst/base
typelibdir=@abs_top_builddir@/gst-libs/gst/base typelibdir=@abs_top_builddir@/gst-libs/gst/base

View file

@ -1,7 +1,7 @@
prefix= prefix=
exec_prefix= exec_prefix=
libdir=${pcfiledir}/../gst-libs/gst/insertbin/.libs libdir=@insertbinlibdir@
includedir=${pcfiledir}/../gst-libs includedir=@abs_top_srcdir@/gst-libs
Name: GStreamer Insert Bin, Uninstalled Name: GStreamer Insert Bin, Uninstalled
Description: Bin to automatically and insertally link elements, uninstalled Description: Bin to automatically and insertally link elements, uninstalled

View file

@ -1,7 +1,7 @@
prefix= prefix=
exec_prefix= exec_prefix=
libdir=${pcfiledir}/../gst-libs/gst/mpegts/.libs libdir=@mpegtslibdir@
includedir=${pcfiledir}/../gst-libs includedir=@abs_top_srcdir@/gst-libs
Name: GStreamer MPEG-TS, Uninstalled Name: GStreamer MPEG-TS, Uninstalled
Description: GStreamer MPEG-TS support, uninstalled Description: GStreamer MPEG-TS support, uninstalled

View file

@ -1,7 +1,7 @@
prefix= prefix=
exec_prefix= exec_prefix=
libdir=${pcfiledir}/../gst-libs/gst/player/.libs libdir=@playerlibdir@
includedir=${pcfiledir}/../gst-libs includedir=@abs_top_srcdir@/gst-libs
Name: GStreamer Player, Uninstalled Name: GStreamer Player, Uninstalled
Description: GStreamer Player convenience library, 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 Description: Streaming media framework, bad plugins libraries, uninstalled
Version: @VERSION@ Version: @VERSION@
Requires: gstreamer-@GST_API_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 Cflags: -I@abs_top_srcdir@/gst-libs -I@abs_top_builddir@/gst-libs

View file

@ -1,7 +1,7 @@
prefix= prefix=
exec_prefix= exec_prefix=
libdir=${pcfiledir}/../gst-libs/gst/wayland/.libs libdir=@waylandlibdir@
includedir=${pcfiledir}/../gst-libs includedir=@abs_top_srcdir@/gst-libs
Name: GStreamer Wayland, Uninstalled Name: GStreamer Wayland, Uninstalled
Description: GStreamer Wayland support, 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('GST_API_VERSION', api_version)
pkgconf.set('VERSION', gst_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_install_dir = '@0@/pkgconfig'.format(get_option('libdir'))
pkg_libs = [ pkg_libs = [
@ -25,7 +40,6 @@ if build_gstgl
pkg_libs += 'gl' pkg_libs += 'gl'
endif endif
# FIXME: -uninstalled.pc files (if still needed?)
foreach p : pkg_libs foreach p : pkg_libs
infile = 'gstreamer-@0@.pc.in'.format(p) infile = 'gstreamer-@0@.pc.in'.format(p)
outfile = 'gstreamer-@0@-@1@.pc'.format(p, api_version) outfile = 'gstreamer-@0@-@1@.pc'.format(p, api_version)
@ -33,4 +47,10 @@ foreach p : pkg_libs
output : outfile, output : outfile,
configuration : pkgconf, configuration : pkgconf,
install_dir : pkg_install_dir) 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 endforeach