aboutsummaryrefslogtreecommitdiff
path: root/run_unittests.py
diff options
context:
space:
mode:
authorDavid Seifert <16636962+SoapGentoo@users.noreply.github.com>2019-09-06 21:16:16 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2019-09-06 22:16:16 +0300
commit7b9c348102792030859ed0001a51416506a0a092 (patch)
tree6931eb6a3ca672a9fb3cace83457f99097911b62 /run_unittests.py
parent61b5361c6245bbddb57c8f696dab6fd48688bd4e (diff)
downloadmeson-7b9c348102792030859ed0001a51416506a0a092.zip
meson-7b9c348102792030859ed0001a51416506a0a092.tar.gz
meson-7b9c348102792030859ed0001a51416506a0a092.tar.bz2
Add `-Wl,-rpath-link` for secondary dependencies
Diffstat (limited to 'run_unittests.py')
-rwxr-xr-xrun_unittests.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/run_unittests.py b/run_unittests.py
index f9ba017..eedb087 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -5292,6 +5292,45 @@ endian = 'little'
self.build()
@skipIfNoPkgconfig
+ def test_pkgconfig_secondary_dependencies(self):
+ '''
+ Check that Meson gets -Wl,-rpath-link right for secondary dependencies
+
+ This test requires at least two libraries, as -Wl,-rpath-link is only
+ required for dependencies of dependencies (i.e. secondary dependencies).
+ '''
+ with tempfile.TemporaryDirectory() as tempdirname:
+ testdirbase = os.path.join(self.unit_test_dir, '63 rpath-link secondary')
+
+ # build libA
+ testdirlibA = os.path.join(testdirbase, 'libA')
+ testlibAprefix = os.path.join(tempdirname, 'libAprefix')
+ self.init(testdirlibA, extra_args=['--prefix=' + testlibAprefix,
+ '--libdir=lib',
+ '--default-library=shared'], default_args=False)
+ self.build()
+ self.install(use_destdir=False)
+
+ # build libB (uses libA)
+ pkg_dir = [os.path.join(testlibAprefix, 'lib/pkgconfig')]
+ self.new_builddir()
+ testdirlibB = os.path.join(testdirbase, 'libB')
+ testlibBprefix = os.path.join(tempdirname, 'libBprefix')
+ self.init(testdirlibB, extra_args=['--prefix=' + testlibBprefix,
+ '--libdir=lib',
+ '--default-library=shared'], default_args=False,
+ override_envvars={'PKG_CONFIG_PATH': ':'.join(pkg_dir)})
+ self.build()
+ self.install(use_destdir=False)
+
+ # build executable (uses libB, secondary dependency on libA)
+ pkg_dir.append(os.path.join(testlibBprefix, 'lib/pkgconfig'))
+ self.new_builddir()
+ self.init(os.path.join(testdirbase, 'app'),
+ override_envvars={'PKG_CONFIG_PATH': ':'.join(pkg_dir)})
+ self.build()
+
+ @skipIfNoPkgconfig
def test_pkgconfig_formatting(self):
testdir = os.path.join(self.unit_test_dir, '38 pkgconfig format')
self.init(testdir)