tests: Fix pkg-config test for multiarch binaries on multiarch systems

The test was passing fine when `bindir` was equal to `multiarch_bindir`,
but not when they differ.

For example, on a Debian system, `gio-querymodules` is installed to
`/usr/lib/x86_64-linux-gnu/glib-2.0/gio-querymodules` rather than
`/usr/bin/gio-querymodules` as it is on (say) Fedora.

This was causing the pkg-config tests to fail on Debian.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #3045
This commit is contained in:
Philip Withnall 2023-07-20 13:05:48 +01:00
parent b16e682112
commit 2b391227e6

View File

@ -1127,14 +1127,16 @@ if have_bash and have_pkg_config
gio_binaries = [ gio_binaries = [
'gio', 'gio',
'gio-querymodules',
'glib-compile-schemas',
'glib-compile-resources', 'glib-compile-resources',
'gdbus', 'gdbus',
'gdbus-codegen', 'gdbus-codegen',
'gresource', 'gresource',
'gsettings', 'gsettings',
] ]
gio_multiarch_binaries = [
'gio-querymodules',
'glib-compile-schemas',
]
foreach binary: gio_binaries foreach binary: gio_binaries
pkg_config_tests += [ pkg_config_tests += [
@ -1144,6 +1146,14 @@ if have_bash and have_pkg_config
] ]
endforeach endforeach
foreach binary: gio_multiarch_binaries
pkg_config_tests += [
'test "$(pkg-config --variable=@0@ gio-2.0)" = "@1@"'.format(
binary.underscorify(),
prefix / multiarch_bindir / binary)
]
endforeach
test('gio-2.0-pkg-config', test('gio-2.0-pkg-config',
bash, bash,
args: [ '-xe', '-c', '\n'.join(pkg_config_tests) ], args: [ '-xe', '-c', '\n'.join(pkg_config_tests) ],