v2-0003-Support-absolute-bindir-libdir-in-regression-test.patch
text/x-patch
Filename: v2-0003-Support-absolute-bindir-libdir-in-regression-test.patch
Type: text/x-patch
Part: 2
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v2-0003
Subject: Support absolute bindir/libdir in regression tests with meson
| File | + | − |
|---|---|---|
| meson.build | 6 | 5 |
From fddee56b5e27a3b5e4c406e8caa2d230b49eb447 Mon Sep 17 00:00:00 2001
From: Wolfgang Walther <walther@technowledgy.de>
Date: Mon, 11 Mar 2024 19:54:41 +0100
Subject: [PATCH v2 3/3] Support absolute bindir/libdir in regression tests
with meson
Passing an absolute bindir/libdir will install the binaries and libraries to
<build>/tmp_install/<bindir> and <build>/tmp_install/<libdir> respectively.
This is path is correctly passed to the regression test suite via configure/make,
but not via meson, yet. This is because the "/" operator in the following expression
throws away the whole left side when the right side is an absolute path:
test_install_location / get_option('libdir')
This was already correctly handled for dir_prefix, which is likely absolute as well.
This patch handles both bindir and libdir in the same way - prefixing absolute paths
with the tmp_install path correctly.
---
meson.build | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/meson.build b/meson.build
index f9e96b01cfa..144c443b5e4 100644
--- a/meson.build
+++ b/meson.build
@@ -3048,15 +3048,17 @@ test_install_destdir = meson.build_root() / 'tmp_install/'
if build_system != 'windows'
# On unixoid systems this is trivial, we just prepend the destdir
assert(dir_prefix.startswith('/')) # enforced by meson
- test_install_location = '@0@@1@'.format(test_install_destdir, dir_prefix)
+ temp_install_bindir = '@0@@1@'.format(test_install_destdir, dir_prefix / dir_bin)
+ temp_install_libdir = '@0@@1@'.format(test_install_destdir, dir_prefix / dir_lib)
else
# drives, drive-relative paths, etc make this complicated on windows, call
# into a copy of meson's logic for it
command = [
python, '-c',
'import sys; from pathlib import PurePath; d1=sys.argv[1]; d2=sys.argv[2]; print(str(PurePath(d1, *PurePath(d2).parts[1:])))',
- test_install_destdir, dir_prefix]
- test_install_location = run_command(command, check: true).stdout().strip()
+ test_install_destdir]
+ temp_install_bindir = run_command(command, dir_prefix / dir_bin, check: true).stdout().strip()
+ temp_install_libdir = run_command(command, dir_prefix / dir_lib, check: true).stdout().strip()
endif
meson_install_args = meson_args + ['install'] + {
@@ -3093,7 +3095,6 @@ testport = 40000
test_env = environment()
-temp_install_bindir = test_install_location / get_option('bindir')
test_initdb_template = meson.build_root() / 'tmp_install' / 'initdb-template'
test_env.set('PG_REGRESS', pg_regress.full_path())
test_env.set('REGRESS_SHLIB', regress_module.full_path())
@@ -3108,7 +3109,7 @@ test_env.set('PG_TEST_EXTRA', get_option('PG_TEST_EXTRA'))
# that works (everything but windows, basically). On windows everything
# library-like gets installed into bindir, solving that issue.
if library_path_var != ''
- test_env.prepend(library_path_var, test_install_location / get_option('libdir'))
+ test_env.prepend(library_path_var, temp_install_libdir)
endif
--
2.44.0