diff options
author | David Seifert <16636962+SoapGentoo@users.noreply.github.com> | 2019-09-06 21:16:16 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-09-06 22:16:16 +0300 |
commit | 7b9c348102792030859ed0001a51416506a0a092 (patch) | |
tree | 6931eb6a3ca672a9fb3cace83457f99097911b62 /run_unittests.py | |
parent | 61b5361c6245bbddb57c8f696dab6fd48688bd4e (diff) | |
download | meson-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-x | run_unittests.py | 39 |
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) |