From e92837b6e40b5ed706239a2a1814ff1c1f0d2ff5 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Wed, 4 Jan 2017 16:51:10 +0100 Subject: [PATCH] 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 --- pkgconfig/Makefile.am | 16 +++++++++++++- .../gstreamer-bad-audio-uninstalled.pc.in | 2 +- .../gstreamer-bad-base-uninstalled.pc.in | 2 +- .../gstreamer-bad-video-uninstalled.pc.in | 2 +- .../gstreamer-codecparsers-uninstalled.pc.in | 4 ++-- pkgconfig/gstreamer-gl-uninstalled.pc.in | 2 +- .../gstreamer-insertbin-uninstalled.pc.in | 4 ++-- pkgconfig/gstreamer-mpegts-uninstalled.pc.in | 4 ++-- pkgconfig/gstreamer-player-uninstalled.pc.in | 4 ++-- .../gstreamer-plugins-bad-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-wayland-uninstalled.pc.in | 4 ++-- pkgconfig/meson.build | 22 ++++++++++++++++++- 12 files changed, 51 insertions(+), 17 deletions(-) diff --git a/pkgconfig/Makefile.am b/pkgconfig/Makefile.am index 88c7e5204e..b64837cc6e 100644 --- a/pkgconfig/Makefile.am +++ b/pkgconfig/Makefile.am @@ -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) diff --git a/pkgconfig/gstreamer-bad-audio-uninstalled.pc.in b/pkgconfig/gstreamer-bad-audio-uninstalled.pc.in index 6b95364ee9..e2fa1151c7 100644 --- a/pkgconfig/gstreamer-bad-audio-uninstalled.pc.in +++ b/pkgconfig/gstreamer-bad-audio-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-bad-base-uninstalled.pc.in b/pkgconfig/gstreamer-bad-base-uninstalled.pc.in index e11a01bccf..b227027b39 100644 --- a/pkgconfig/gstreamer-bad-base-uninstalled.pc.in +++ b/pkgconfig/gstreamer-bad-base-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-bad-video-uninstalled.pc.in b/pkgconfig/gstreamer-bad-video-uninstalled.pc.in index f9ae7bf403..09ccdfea7e 100644 --- a/pkgconfig/gstreamer-bad-video-uninstalled.pc.in +++ b/pkgconfig/gstreamer-bad-video-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-codecparsers-uninstalled.pc.in b/pkgconfig/gstreamer-codecparsers-uninstalled.pc.in index 71ed7713e5..fa39c08cfc 100644 --- a/pkgconfig/gstreamer-codecparsers-uninstalled.pc.in +++ b/pkgconfig/gstreamer-codecparsers-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-gl-uninstalled.pc.in b/pkgconfig/gstreamer-gl-uninstalled.pc.in index dac4cda3fb..1d2955936e 100644 --- a/pkgconfig/gstreamer-gl-uninstalled.pc.in +++ b/pkgconfig/gstreamer-gl-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-insertbin-uninstalled.pc.in b/pkgconfig/gstreamer-insertbin-uninstalled.pc.in index 1a535aaca7..328e77b265 100644 --- a/pkgconfig/gstreamer-insertbin-uninstalled.pc.in +++ b/pkgconfig/gstreamer-insertbin-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-mpegts-uninstalled.pc.in b/pkgconfig/gstreamer-mpegts-uninstalled.pc.in index 179996c2c5..abe7f0b32b 100644 --- a/pkgconfig/gstreamer-mpegts-uninstalled.pc.in +++ b/pkgconfig/gstreamer-mpegts-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-player-uninstalled.pc.in b/pkgconfig/gstreamer-player-uninstalled.pc.in index 5c2c0d7789..0cae959d2f 100644 --- a/pkgconfig/gstreamer-player-uninstalled.pc.in +++ b/pkgconfig/gstreamer-player-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in b/pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in index df9a9c5046..84f2441ea8 100644 --- a/pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in +++ b/pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-wayland-uninstalled.pc.in b/pkgconfig/gstreamer-wayland-uninstalled.pc.in index 80d6e1b43d..2661c1e38a 100644 --- a/pkgconfig/gstreamer-wayland-uninstalled.pc.in +++ b/pkgconfig/gstreamer-wayland-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build index e430462045..c3df686435 100644 --- a/pkgconfig/meson.build +++ b/pkgconfig/meson.build @@ -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