diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-12-02 23:57:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-02 23:57:19 +0200 |
commit | 3276bdd23d0479eb343b95e80ac0d87475bb3a7e (patch) | |
tree | aec07111dda4960f3db83ba4eef06531ac941277 /mesonbuild/backend | |
parent | e933bdd87229f13766705274a8815e9f10d4fe8d (diff) | |
parent | 07d7e87411ca411682344c945c006fd61fa7ab98 (diff) | |
download | meson-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.py | 11 |
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: |