From a0e6278dba899f122d806994d47ee0e2c1741b34 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Wed, 21 Sep 2022 19:19:45 +0530 Subject: [PATCH] meson: Use implicit builtin dirs in pkgconfig generation Starting with Meson 0.62, meson automatically populates the variables list in the pkgconfig file if you reference builtin directories in the pkgconfig file (whether via a custom pkgconfig variable or elsewhere). We need this, because ${prefix}/libexec is a hard-coded value which is incorrect on, for example, Debian. Bump requirement to 0.62, and remove version compares that retained support for older Meson versions. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245 Part-of: --- meson.build | 17 +---------------- subprojects/gst-devtools/meson.build | 2 +- subprojects/gst-docs/meson.build | 2 +- subprojects/gst-editing-services/meson.build | 2 +- .../gst-integration-testsuites/meson.build | 2 +- subprojects/gst-libav/meson.build | 2 +- subprojects/gst-omx/meson.build | 2 +- subprojects/gst-plugins-bad/meson.build | 2 +- subprojects/gst-plugins-base/meson.build | 18 +++++++++--------- subprojects/gst-plugins-good/meson.build | 2 +- subprojects/gst-plugins-ugly/meson.build | 2 +- subprojects/gst-python/meson.build | 2 +- subprojects/gst-rtsp-server/meson.build | 2 +- subprojects/gstreamer-sharp/meson.build | 2 +- subprojects/gstreamer-vaapi/meson.build | 2 +- subprojects/gstreamer/meson.build | 19 +++++++++---------- 16 files changed, 32 insertions(+), 48 deletions(-) diff --git a/meson.build b/meson.build index 0df45b3e7d..47567e6e4b 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('gstreamer-full', 'c', version : '1.21.0.1', - meson_version : '>= 0.60.0', + meson_version : '>= 0.62.0', default_options : ['buildtype=debugoptimized', # Needed due to https://github.com/mesonbuild/meson/issues/1889, # but this can cause problems in the future. Remove it @@ -33,21 +33,6 @@ endif # Install gst-indent pre-commit hook run_command(python3, '-c', 'import shutil; shutil.copy("scripts/git-hooks/multi-pre-commit.hook", ".git/hooks/pre-commit")', check: false) -# Ensure that the user does not have Strawberry Perl in PATH, since it ships -# with a pkg-config.bat and broken pkgconfig files for libffi and zlib. Will -# cause a build error, such as in -# https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/41 -ensure_no_strawberry_perl = ''' -import os -assert(r'Strawberry\perl\bin' not in os.environ['PATH']) -''' -if build_system == 'windows' and meson.version().version_compare('<0.60.0') - cmdres = run_command(python3, '-c', ensure_no_strawberry_perl, check: false) - if cmdres.returncode() != 0 - error('You have Strawberry Perl in PATH which is known to cause build issues with Meson < 0.60.0. Please remove it from PATH, uninstall it, or upgrade Meson.') - endif -endif - # On macOS, you have to run "Install Certificates.command" otherwise Python # doesn't have access to the latest SSL CA Certificates, and Meson will fail to # download wrap files from websites that use, for example, Let's Encrypt. diff --git a/subprojects/gst-devtools/meson.build b/subprojects/gst-devtools/meson.build index fc7205e8d7..d0523ea587 100644 --- a/subprojects/gst-devtools/meson.build +++ b/subprojects/gst-devtools/meson.build @@ -1,6 +1,6 @@ project('gst-devtools', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'c_std=gnu99', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gst-docs/meson.build b/subprojects/gst-docs/meson.build index 790f217fcb..62ea0afb61 100644 --- a/subprojects/gst-docs/meson.build +++ b/subprojects/gst-docs/meson.build @@ -1,6 +1,6 @@ project('GStreamer manuals and tutorials', 'c', version: '1.21.0.1', - meson_version : '>= 0.60') + meson_version : '>= 0.62') hotdoc_p = find_program('hotdoc') if not hotdoc_p.found() diff --git a/subprojects/gst-editing-services/meson.build b/subprojects/gst-editing-services/meson.build index b035dacb90..79caed7be1 100644 --- a/subprojects/gst-editing-services/meson.build +++ b/subprojects/gst-editing-services/meson.build @@ -1,6 +1,6 @@ project('gst-editing-services', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gst-integration-testsuites/meson.build b/subprojects/gst-integration-testsuites/meson.build index b735fc7dac..f37b549eb4 100644 --- a/subprojects/gst-integration-testsuites/meson.build +++ b/subprojects/gst-integration-testsuites/meson.build @@ -1 +1 @@ -project('gst-integration-testsuites', [], version: '1.21.0.1', meson_version : '>= 0.60', license: 'LGPL') +project('gst-integration-testsuites', [], version: '1.21.0.1', meson_version : '>= 0.62', license: 'LGPL') diff --git a/subprojects/gst-libav/meson.build b/subprojects/gst-libav/meson.build index 1cdd33c5b3..661de7d6c4 100644 --- a/subprojects/gst-libav/meson.build +++ b/subprojects/gst-libav/meson.build @@ -1,6 +1,6 @@ project('gst-libav', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gst-omx/meson.build b/subprojects/gst-omx/meson.build index d1b149d997..05c4b68ec8 100644 --- a/subprojects/gst-omx/meson.build +++ b/subprojects/gst-omx/meson.build @@ -1,6 +1,6 @@ project('gst-omx', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build index 90098a1276..fa4423e91d 100644 --- a/subprojects/gst-plugins-bad/meson.build +++ b/subprojects/gst-plugins-bad/meson.build @@ -1,6 +1,6 @@ project('gst-plugins-bad', 'c', 'cpp', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build index 451ee15769..42e2b29914 100644 --- a/subprojects/gst-plugins-base/meson.build +++ b/subprojects/gst-plugins-base/meson.build @@ -1,6 +1,6 @@ project('gst-plugins-base', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) @@ -460,14 +460,14 @@ if get_option('default_library') == 'shared' plugins_pkgconfig_install_dir = disabler() endif -pkgconfig_variables = ['exec_prefix=${prefix}', - 'toolsdir=${exec_prefix}/bin', - 'pluginsdir=${libdir}/gstreamer-1.0', - 'datarootdir=${prefix}/share', - 'datadir=${datarootdir}', - 'girdir=${datadir}/gir-1.0', - 'typelibdir=${libdir}/girepository-1.0', - 'libexecdir=${prefix}/libexec'] +pkgconfig_variables = [ + 'exec_prefix=${prefix}', + 'toolsdir=${exec_prefix}/bin', + 'pluginsdir=${libdir}/gstreamer-1.0', + 'girdir=${datadir}/gir-1.0', + 'typelibdir=${libdir}/girepository-1.0', + 'pluginscannerdir=${libexecdir}/gstreamer-1.0' +] pkgconfig_subdirs = ['gstreamer-1.0'] meson_pkg_config_file_fixup_script = find_program('scripts/meson-pkg-config-file-fixup.py') diff --git a/subprojects/gst-plugins-good/meson.build b/subprojects/gst-plugins-good/meson.build index 97a3863e74..e3a1b044be 100644 --- a/subprojects/gst-plugins-good/meson.build +++ b/subprojects/gst-plugins-good/meson.build @@ -1,6 +1,6 @@ project('gst-plugins-good', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build index c9fe6ba8d1..4bb67f4607 100644 --- a/subprojects/gst-plugins-ugly/meson.build +++ b/subprojects/gst-plugins-ugly/meson.build @@ -1,6 +1,6 @@ project('gst-plugins-ugly', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gst-python/meson.build b/subprojects/gst-python/meson.build index c28df16192..3def11216a 100644 --- a/subprojects/gst-python/meson.build +++ b/subprojects/gst-python/meson.build @@ -1,6 +1,6 @@ project('gst-python', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'c_std=gnu99', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gst-rtsp-server/meson.build b/subprojects/gst-rtsp-server/meson.build index df41235755..eb86469231 100644 --- a/subprojects/gst-rtsp-server/meson.build +++ b/subprojects/gst-rtsp-server/meson.build @@ -1,6 +1,6 @@ project('gst-rtsp-server', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : ['warning_level=1', 'buildtype=debugoptimized']) gst_version = meson.project_version() diff --git a/subprojects/gstreamer-sharp/meson.build b/subprojects/gstreamer-sharp/meson.build index 3c90d34b9d..ba1ed0f798 100644 --- a/subprojects/gstreamer-sharp/meson.build +++ b/subprojects/gstreamer-sharp/meson.build @@ -1,5 +1,5 @@ project('gstreamer-sharp', ['cs', 'c'], version: '1.21.0.1', - meson_version : '>= 0.60', license: 'LGPL') + meson_version : '>= 0.62', license: 'LGPL') if host_machine.system() == 'osx' lib_prefix='' diff --git a/subprojects/gstreamer-vaapi/meson.build b/subprojects/gstreamer-vaapi/meson.build index fa75c1f07c..167f288b00 100644 --- a/subprojects/gstreamer-vaapi/meson.build +++ b/subprojects/gstreamer-vaapi/meson.build @@ -1,6 +1,6 @@ project('gstreamer-vaapi', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build index 85e36ef9c8..c719e79d4f 100644 --- a/subprojects/gstreamer/meson.build +++ b/subprojects/gstreamer/meson.build @@ -1,6 +1,6 @@ project('gstreamer', 'c', version : '1.21.0.1', - meson_version : '>= 0.60', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) @@ -609,15 +609,14 @@ if get_option('default_library') == 'shared' # If we don't build static plugins there is no need to generate pc files plugins_pkgconfig_install_dir = disabler() endif -pkgconfig_variables = ['exec_prefix=${prefix}', - 'toolsdir=${exec_prefix}/bin', - 'pluginsdir=${libdir}/gstreamer-1.0', - 'datarootdir=${prefix}/share', - 'datadir=${datarootdir}', - 'girdir=${datadir}/gir-1.0', - 'typelibdir=${libdir}/girepository-1.0', - 'libexecdir=${prefix}/libexec', - 'pluginscannerdir=${libexecdir}/gstreamer-1.0'] +pkgconfig_variables = [ + 'exec_prefix=${prefix}', + 'toolsdir=${exec_prefix}/bin', + 'pluginsdir=${libdir}/gstreamer-1.0', + 'girdir=${datadir}/gir-1.0', + 'typelibdir=${libdir}/girepository-1.0', + 'pluginscannerdir=${libexecdir}/gstreamer-1.0' +] pkgconfig_uninstalled_variables = ['exec_prefix=${prefix}', 'gstreamerdir=${prefix}/subprojects/gstreamer', 'bashhelpersdir=${gstreamerdir}/data/bash-completion/helpers',