From b01f8891f41f0e9ae94837bf73208cb1b16ff913 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Wed, 4 Jan 2017 14:56:36 +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. https://bugzilla.gnome.org/show_bug.cgi?id=776810 --- pkgconfig/Makefile.am | 16 +++++++++++++- .../gstreamer-allocators-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-app-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-audio-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-fft-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-pbutils-uninstalled.pc.in | 2 +- .../gstreamer-plugins-base-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-riff-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-rtp-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-rtsp-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-sdp-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-tag-uninstalled.pc.in | 2 +- pkgconfig/gstreamer-video-uninstalled.pc.in | 2 +- pkgconfig/meson.build | 21 +++++++++++++++++++ 14 files changed, 48 insertions(+), 13 deletions(-) diff --git a/pkgconfig/Makefile.am b/pkgconfig/Makefile.am index 9976f95ef0..7fa2365cdc 100644 --- a/pkgconfig/Makefile.am +++ b/pkgconfig/Makefile.am @@ -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) diff --git a/pkgconfig/gstreamer-allocators-uninstalled.pc.in b/pkgconfig/gstreamer-allocators-uninstalled.pc.in index 272359414f..58739e24a2 100644 --- a/pkgconfig/gstreamer-allocators-uninstalled.pc.in +++ b/pkgconfig/gstreamer-allocators-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-app-uninstalled.pc.in b/pkgconfig/gstreamer-app-uninstalled.pc.in index 0fefc9be5b..419ba2483b 100644 --- a/pkgconfig/gstreamer-app-uninstalled.pc.in +++ b/pkgconfig/gstreamer-app-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-audio-uninstalled.pc.in b/pkgconfig/gstreamer-audio-uninstalled.pc.in index 3fadf66a72..b6528bb7ec 100644 --- a/pkgconfig/gstreamer-audio-uninstalled.pc.in +++ b/pkgconfig/gstreamer-audio-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-fft-uninstalled.pc.in b/pkgconfig/gstreamer-fft-uninstalled.pc.in index 1b92434b89..8593a344b3 100644 --- a/pkgconfig/gstreamer-fft-uninstalled.pc.in +++ b/pkgconfig/gstreamer-fft-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-pbutils-uninstalled.pc.in b/pkgconfig/gstreamer-pbutils-uninstalled.pc.in index e89187d62f..df85b1f440 100644 --- a/pkgconfig/gstreamer-pbutils-uninstalled.pc.in +++ b/pkgconfig/gstreamer-pbutils-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in b/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in index eaf378b1ad..d9ff536057 100644 --- a/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in +++ b/pkgconfig/gstreamer-plugins-base-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-riff-uninstalled.pc.in b/pkgconfig/gstreamer-riff-uninstalled.pc.in index 4f9095c67c..117cc7fbfe 100644 --- a/pkgconfig/gstreamer-riff-uninstalled.pc.in +++ b/pkgconfig/gstreamer-riff-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-rtp-uninstalled.pc.in b/pkgconfig/gstreamer-rtp-uninstalled.pc.in index c9592e32ef..e0963f4ecd 100644 --- a/pkgconfig/gstreamer-rtp-uninstalled.pc.in +++ b/pkgconfig/gstreamer-rtp-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-rtsp-uninstalled.pc.in b/pkgconfig/gstreamer-rtsp-uninstalled.pc.in index 04d4837c67..80869e5f95 100644 --- a/pkgconfig/gstreamer-rtsp-uninstalled.pc.in +++ b/pkgconfig/gstreamer-rtsp-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-sdp-uninstalled.pc.in b/pkgconfig/gstreamer-sdp-uninstalled.pc.in index 18b3442766..af1aa44d60 100644 --- a/pkgconfig/gstreamer-sdp-uninstalled.pc.in +++ b/pkgconfig/gstreamer-sdp-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-tag-uninstalled.pc.in b/pkgconfig/gstreamer-tag-uninstalled.pc.in index 8e97fe1d4d..cb097a13c3 100644 --- a/pkgconfig/gstreamer-tag-uninstalled.pc.in +++ b/pkgconfig/gstreamer-tag-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/gstreamer-video-uninstalled.pc.in b/pkgconfig/gstreamer-video-uninstalled.pc.in index ae71ad2d61..59140a1e57 100644 --- a/pkgconfig/gstreamer-video-uninstalled.pc.in +++ b/pkgconfig/gstreamer-video-uninstalled.pc.in @@ -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 diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build index 578f39e51b..ebc23f7119 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('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