Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit eb6765d

Browse files
committed
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 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. Author: Wolfgang Walther Reviewed-by: Nazir Bilal Yavuz, Alvaro Herrera, Peter Eisentraut Reviewed-by: Tristan Partin Discussion: https://www.postgresql.org/message-id/ca8f37e1-a2c3-40e2-91f6-59c3d3652ad4@technowledgy.de Backpatch: 16-, where meson support was added
1 parent a32ffee commit eb6765d

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

meson.build

+6-5
Original file line numberDiff line numberDiff line change
@@ -3268,15 +3268,17 @@ test_install_destdir = meson.build_root() / 'tmp_install/'
32683268
if build_system != 'windows'
32693269
# On unixoid systems this is trivial, we just prepend the destdir
32703270
assert(dir_prefix.startswith('/')) # enforced by meson
3271-
test_install_location = '@0@@1@'.format(test_install_destdir, dir_prefix)
3271+
temp_install_bindir = '@0@@1@'.format(test_install_destdir, dir_prefix / dir_bin)
3272+
temp_install_libdir = '@0@@1@'.format(test_install_destdir, dir_prefix / dir_lib)
32723273
else
32733274
# drives, drive-relative paths, etc make this complicated on windows, call
32743275
# into a copy of meson's logic for it
32753276
command = [
32763277
python, '-c',
32773278
'import sys; from pathlib import PurePath; d1=sys.argv[1]; d2=sys.argv[2]; print(str(PurePath(d1, *PurePath(d2).parts[1:])))',
3278-
test_install_destdir, dir_prefix]
3279-
test_install_location = run_command(command, check: true).stdout().strip()
3279+
test_install_destdir]
3280+
temp_install_bindir = run_command(command, dir_prefix / dir_bin, check: true).stdout().strip()
3281+
temp_install_libdir = run_command(command, dir_prefix / dir_lib, check: true).stdout().strip()
32803282
endif
32813283

32823284
meson_install_args = meson_args + ['install'] + {
@@ -3313,7 +3315,6 @@ testport = 40000
33133315

33143316
test_env = environment()
33153317

3316-
temp_install_bindir = test_install_location / get_option('bindir')
33173318
test_initdb_template = meson.build_root() / 'tmp_install' / 'initdb-template'
33183319
test_env.set('PG_REGRESS', pg_regress.full_path())
33193320
test_env.set('REGRESS_SHLIB', regress_module.full_path())
@@ -3328,7 +3329,7 @@ test_env.set('PG_TEST_EXTRA', get_option('PG_TEST_EXTRA'))
33283329
# that works (everything but windows, basically). On windows everything
33293330
# library-like gets installed into bindir, solving that issue.
33303331
if library_path_var != ''
3331-
test_env.prepend(library_path_var, test_install_location / get_option('libdir'))
3332+
test_env.prepend(library_path_var, temp_install_libdir)
33323333
endif
33333334

33343335

0 commit comments

Comments
 (0)