aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-12-02 23:57:19 +0200
committerGitHub <noreply@github.com>2016-12-02 23:57:19 +0200
commit3276bdd23d0479eb343b95e80ac0d87475bb3a7e (patch)
treeaec07111dda4960f3db83ba4eef06531ac941277 /mesonbuild/backend
parente933bdd87229f13766705274a8815e9f10d4fe8d (diff)
parent07d7e87411ca411682344c945c006fd61fa7ab98 (diff)
downloadmeson-3276bdd23d0479eb343b95e80ac0d87475bb3a7e.zip
meson-3276bdd23d0479eb343b95e80ac0d87475bb3a7e.tar.gz
meson-3276bdd23d0479eb343b95e80ac0d87475bb3a7e.tar.bz2
Merge pull request #1102 from mesonbuild/soname
Fix soname symlink generation
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r--mesonbuild/backend/ninjabackend.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 659a53d..bd65cbe 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -2004,14 +2004,21 @@ rule FORTRAN_DEP_HACK
def generate_shlib_aliases(self, target, outdir):
basename = target.get_filename()
aliases = target.get_aliaslist()
- for alias in aliases:
+ for i, alias in enumerate(aliases):
aliasfile = os.path.join(self.environment.get_build_dir(), outdir, alias)
try:
os.remove(aliasfile)
except Exception:
pass
+ # If both soversion and version are set and to different values,
+ # the .so symlink must point to the soversion symlink rather than the
+ # original file.
+ if i == 0 and len(aliases) > 1:
+ pointed_to_filename = aliases[1]
+ else:
+ pointed_to_filename = basename
try:
- os.symlink(basename, aliasfile)
+ os.symlink(pointed_to_filename, aliasfile)
except NotImplementedError:
mlog.debug("Library versioning disabled because symlinks are not supported.")
except OSError: