diff options
author | William Deegan <bill@baddogconsulting.com> | 2020-05-03 04:19:29 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-03 04:19:29 (GMT) |
commit | c3fb7d78509dc5eca1748d79ea97b6c7ce59869e (patch) | |
tree | f54898ff902bf7999098cdea62d794d6da978ce1 /src | |
parent | b2496d7c252ff8f9063d9176f6076a3caa98a9ac (diff) | |
parent | cbb97df8659b76d0227c27d0aed622e3086ce7b3 (diff) | |
download | SCons-c3fb7d78509dc5eca1748d79ea97b6c7ce59869e.zip SCons-c3fb7d78509dc5eca1748d79ea97b6c7ce59869e.tar.gz SCons-c3fb7d78509dc5eca1748d79ea97b6c7ce59869e.tar.bz2 |
Merge pull request #3635 from dmoody256/soname_fix_for_issue_3246
check for SONAME and generate symlinks (github Issue #3246)
Diffstat (limited to 'src')
-rwxr-xr-x | src/CHANGES.txt | 3 | ||||
-rw-r--r-- | src/engine/SCons/Tool/applelink.py | 8 | ||||
-rw-r--r-- | src/engine/SCons/Tool/link.py | 10 |
3 files changed, 19 insertions, 2 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt index fcd9378..12315a4 100755 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -10,6 +10,9 @@ NOTE: Please include a reference to any Issues resolved by your changes in the b RELEASE VERSION/DATE TO BE FILLED IN LATER + From Daniel Moody: + - Added check for SONAME in environment to setup symlinks correctly (Github Issue #3246) + From James Benton: - Improve Visual Studio solution/project generation code to add support for a per-variant cppflags. Intellisense can be affected by cppflags, diff --git a/src/engine/SCons/Tool/applelink.py b/src/engine/SCons/Tool/applelink.py index efa7ee1..8c081a2 100644 --- a/src/engine/SCons/Tool/applelink.py +++ b/src/engine/SCons/Tool/applelink.py @@ -39,6 +39,7 @@ import SCons.Util # the -rpath option, so we use the "link" tool instead of "gnulink". from . import link +from SCons.Tool import ShLibSonameGenerator class AppleLinkInvalidCurrentVersionException(Exception): pass @@ -70,7 +71,12 @@ def _applelib_versioned_lib_soname(env, libnode, version, prefix, suffix, name_f print("_applelib_versioned_lib_soname: name={!r}".format(name)) major = version.split('.')[0] (libname,_suffix) = name.split('.') - soname = '.'.join([libname, major, _suffix]) + # if a desired SONAME was supplied, use that, otherwise create + # a default from the major version + if env.get('SONAME'): + soname = ShLibSonameGenerator(env, libnode) + else: + soname = '.'.join([libname, major, _suffix]) if Verbose: print("_applelib_versioned_lib_soname: soname={!r}".format(soname)) return soname diff --git a/src/engine/SCons/Tool/link.py b/src/engine/SCons/Tool/link.py index d52c90d..a3567aa 100644 --- a/src/engine/SCons/Tool/link.py +++ b/src/engine/SCons/Tool/link.py @@ -46,6 +46,8 @@ from SCons.Tool.DCommon import isD from SCons.Tool.cxx import iscplusplus +from SCons.Tool import ShLibSonameGenerator + issued_mixed_link_warning = False @@ -173,7 +175,13 @@ def _versioned_lib_soname(env, libnode, version, prefix, suffix, name_func): if Verbose: print("_versioned_lib_soname: name={!r}".format(name)) major = version.split('.')[0] - soname = name + '.' + major + + # if a desired SONAME was supplied, use that, otherwise create + # a default from the major version + if env.get('SONAME'): + soname = ShLibSonameGenerator(env, libnode) + else: + soname = name + '.' + major if Verbose: print("_versioned_lib_soname: soname={!r}".format(soname)) return soname |