commit d654898097e87b64e93a614d824153c9850f50e7 Author: Nirbheek Chauhan Date: Wed Sep 21 19:19:45 2022 +0530 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: (cherry picked from commit a0e6278dba899f122d806994d47ee0e2c1741b34) Conflicts: meson.build subprojects/gst-devtools/meson.build subprojects/gst-docs/meson.build subprojects/gst-editing-services/meson.build subprojects/gst-integration-testsuites/meson.build subprojects/gst-libav/meson.build subprojects/gst-omx/meson.build subprojects/gst-plugins-bad/meson.build subprojects/gst-plugins-base/meson.build subprojects/gst-plugins-good/meson.build subprojects/gst-plugins-ugly/meson.build subprojects/gst-python/meson.build subprojects/gst-rtsp-server/meson.build subprojects/gstreamer-sharp/meson.build subprojects/gstreamer-vaapi/meson.build subprojects/gstreamer/meson.build diff --git a/meson.build b/meson.build index bf8415d0ae..153dec2f10 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('gstreamer-full', 'c', version : '1.20.5', - meson_version : '>= 0.59', + 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 @@ -32,21 +32,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 92860673b5..6e01a1d634 100644 --- a/subprojects/gst-devtools/meson.build +++ b/subprojects/gst-devtools/meson.build @@ -1,6 +1,6 @@ project('gst-devtools', 'c', version : '1.20.5', - meson_version : '>= 0.59', + 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 4f0f54943c..522610f765 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.20.5', - meson_version : '>= 0.59') + version: '1.21.0.1', + 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 63ca7e6d06..12ecb09ff3 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.20.5', - meson_version : '>= 0.59', + 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 15c1f1061b..b27d76a9ef 100644 --- a/subprojects/gst-integration-testsuites/meson.build +++ b/subprojects/gst-integration-testsuites/meson.build @@ -1 +1 @@ -project('gst-integration-testsuites', [], version: '1.20.5', meson_version : '>= 0.59', license: 'LGPL') +project('gst-integration-testsuites', [], version: '1.20.5', meson_version : '>= 0.62', license: 'LGPL') diff --git a/subprojects/gst-libav/meson.build b/subprojects/gst-libav/meson.build index 959b163c45..3bea008ce9 100644 --- a/subprojects/gst-libav/meson.build +++ b/subprojects/gst-libav/meson.build @@ -1,6 +1,6 @@ project('gst-libav', 'c', version : '1.20.5', - meson_version : '>= 0.59', + 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 22c21f9c8b..e2f567b6cb 100644 --- a/subprojects/gst-omx/meson.build +++ b/subprojects/gst-omx/meson.build @@ -1,6 +1,6 @@ project('gst-omx', 'c', version : '1.20.5', - meson_version : '>= 0.59', + 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 ae98612fcf..0ad37c1d64 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.20.5', - meson_version : '>= 0.59', + 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 0beccf0045..043e2bdb7c 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.20.5', - meson_version : '>= 0.59', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) @@ -440,14 +440,15 @@ 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 a68126b899..792c9eb667 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.20.5', - meson_version : '>= 0.59', + 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 516fce8737..d8878f970d 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.20.5', - meson_version : '>= 0.59', + 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 40e58eded8..0d5ffb6fd0 100644 --- a/subprojects/gst-python/meson.build +++ b/subprojects/gst-python/meson.build @@ -1,6 +1,6 @@ project('gst-python', 'c', version : '1.20.5', - meson_version : '>= 0.59', + 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 4d830fda33..7d7177300b 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.20.5', - meson_version : '>= 0.59', + 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 d7d8ea3d8f..bb19e78bc4 100644 --- a/subprojects/gstreamer-sharp/meson.build +++ b/subprojects/gstreamer-sharp/meson.build @@ -1,5 +1,5 @@ project('gstreamer-sharp', ['cs', 'c'], version: '1.20.5', - meson_version : '>= 0.59', 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 322bcac96a..df74414cd9 100644 --- a/subprojects/gstreamer-vaapi/meson.build +++ b/subprojects/gstreamer-vaapi/meson.build @@ -1,6 +1,6 @@ project('gstreamer-vaapi', 'c', version : '1.20.5', - meson_version : '>= 0.59', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build index ce860ed140..0811de7673 100644 --- a/subprojects/gstreamer/meson.build +++ b/subprojects/gstreamer/meson.build @@ -1,6 +1,6 @@ project('gstreamer', 'c', version : '1.20.5', - meson_version : '>= 0.59', + meson_version : '>= 0.62', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) @@ -579,15 +579,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',