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 +++++++++++++++- pkgconfig/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 +- pkgconfig/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 9976f95..7fa2365 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 2723594..58739e2 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 0fefc9b..419ba24 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 3fadf66..b6528bb 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 1b92434..8593a34 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 e89187d..df85b1f 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 eaf378b..d9ff536 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 4f9095c..117cc7f 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 c9592e3..e0963f4 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 04d4837..80869e5 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 18b3442..af1aa44 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 8e97fe1..cb097a1 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 ae71ad2..59140a1 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 578f39e..ebc23f7 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 -- 2.7.4