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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
This commit is contained in:
Nirbheek Chauhan 2022-09-21 19:19:45 +05:30
parent a9144f5313
commit a0e6278dba
16 changed files with 32 additions and 48 deletions

View file

@ -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.

View file

@ -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' ])

View file

@ -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()

View file

@ -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' ])

View file

@ -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')

View file

@ -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' ])

View file

@ -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' ])

View file

@ -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' ])

View file

@ -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')

View file

@ -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' ])

View file

@ -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' ])

View file

@ -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' ])

View file

@ -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()

View file

@ -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=''

View file

@ -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' ])

View file

@ -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',