diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2021-11-24 17:29:06 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2021-11-24 23:18:53 +0530 |
commit | af5993fffd37944a15326cb9510775b269352ce0 (patch) | |
tree | 7783fbd8d21a98a70497a9b3e35bffcc85b43b07 /unittests/linuxliketests.py | |
parent | bd9d9818711eaba18b774e17c9ce405c5020c6f9 (diff) | |
download | meson-af5993fffd37944a15326cb9510775b269352ce0.zip meson-af5993fffd37944a15326cb9510775b269352ce0.tar.gz meson-af5993fffd37944a15326cb9510775b269352ce0.tar.bz2 |
shared_module: Add soname when used as a link target
Emit a detailed deprecation warning that explains what to do instead.
Also add a unittest.
```
DEPRECATION: target prog links against shared module mymod, which is incorrect.
This will be an error in the future, so please use shared_library() for mymod instead.
If shared_module() was used for mymod because it has references to undefined symbols,
use shared_libary() with `override_options: ['b_lundef=false']` instead.
```
Fixes https://github.com/mesonbuild/meson/issues/9492
Diffstat (limited to 'unittests/linuxliketests.py')
-rw-r--r-- | unittests/linuxliketests.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/unittests/linuxliketests.py b/unittests/linuxliketests.py index 0f99f01..8ff0f8e 100644 --- a/unittests/linuxliketests.py +++ b/unittests/linuxliketests.py @@ -438,6 +438,24 @@ class LinuxlikeTests(BasePlatformTests): self.assertEqual(get_soname(bothset), 'libbothset.so.1.2.3') self.assertEqual(len(self.glob_sofiles_without_privdir(bothset[:-3] + '*')), 3) + # A shared_module that is not linked to anything + module = os.path.join(libpath, 'libsome_module.so') + self.assertPathExists(module) + self.assertFalse(os.path.islink(module)) + self.assertEqual(get_soname(module), None) + + # A shared_module that is not linked to an executable with link_with: + module = os.path.join(libpath, 'liblinked_module1.so') + self.assertPathExists(module) + self.assertFalse(os.path.islink(module)) + self.assertEqual(get_soname(module), 'liblinked_module1.so') + + # A shared_module that is not linked to an executable with dependencies: + module = os.path.join(libpath, 'liblinked_module2.so') + self.assertPathExists(module) + self.assertFalse(os.path.islink(module)) + self.assertEqual(get_soname(module), 'liblinked_module2.so') + def test_soname(self): self._test_soname_impl(self.builddir, False) |