9a9b91c940
It's finally done.. Signed-off-by: kaguya <vpshinomiya@protonmail.com>
33 lines
1.2 KiB
Meson
33 lines
1.2 KiB
Meson
# meson does not have native custom_target, so when cross compiling it gets
|
|
# unhappy that we're trying to link a "host" library (which is actually built
|
|
# for the build machine) to a build executable. This means we can't patchelf
|
|
# native libraries if we want cross compilation to work.
|
|
|
|
patchelf = find_program('patchelf', required: false)
|
|
|
|
if patchelf.found()
|
|
# Overwrite LD_LIBRARY_PATH to make meson not fix our shenanigans
|
|
# Otherwise, meson's LD_LIBRARY_PATH makes this test useless because libfoo
|
|
# will be found through it instead of failing when libfoo is not found
|
|
test_env += ['LD_LIBRARY_PATH=']
|
|
test_native_env += ['LD_LIBRARY_PATH=']
|
|
|
|
libfoo = shared_library('foo', 'libfoo.c', link_args: test_additional_link_args)
|
|
libbar_unpatched = shared_library('bar-unpatched', 'libbar.c',
|
|
link_args: test_additional_link_args,
|
|
override_options: 'b_sanitize=none',
|
|
dependencies: libc_dep,
|
|
link_with: libfoo)
|
|
libbar = custom_target('patch-libbar',
|
|
command: [patchelf,
|
|
'--remove-rpath',
|
|
'--set-soname', 'libbar.so',
|
|
libbar_unpatched,
|
|
'--output', '@OUTPUT0@'],
|
|
output: ['libbar.so'],
|
|
)
|
|
test_link_with = [libbar, libfoo]
|
|
else
|
|
test_skipped = true
|
|
endif
|