diff options
author | William Deegan <bill@baddogconsulting.com> | 2018-12-06 23:25:26 (GMT) |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2018-12-06 23:25:26 (GMT) |
commit | a0aad5a43bb631a97dd45cf1a3899f88adb25ed7 (patch) | |
tree | e3d53c07c697e2e456257eb246d197c5bd51564c /src/engine/SCons | |
parent | d620a79ebd590c5864656bd4bbca043e99809454 (diff) | |
download | SCons-a0aad5a43bb631a97dd45cf1a3899f88adb25ed7.zip SCons-a0aad5a43bb631a97dd45cf1a3899f88adb25ed7.tar.gz SCons-a0aad5a43bb631a97dd45cf1a3899f88adb25ed7.tar.bz2 |
Fix GH issue #3241 - Support -compatability_version and -current_version flags propagating to linker for shared libraries. Derive them from SHLIBVERSION if not independantly specified
Diffstat (limited to 'src/engine/SCons')
-rw-r--r-- | src/engine/SCons/Tool/applelink.py | 14 | ||||
-rw-r--r-- | src/engine/SCons/Tool/applelink.xml | 8 |
2 files changed, 13 insertions, 9 deletions
diff --git a/src/engine/SCons/Tool/applelink.py b/src/engine/SCons/Tool/applelink.py index c332fc2..cb7cfb6 100644 --- a/src/engine/SCons/Tool/applelink.py +++ b/src/engine/SCons/Tool/applelink.py @@ -43,7 +43,7 @@ from . import link class AppleLinkInvalidCurrentVersionException(Exception): pass -class AppleLinkInvalidCompatibityVersionException(Exception): +class AppleLinkInvalidCompatibilityVersionException(Exception): pass @@ -93,9 +93,9 @@ def _applelib_check_valid_version(version_string): """ parts = version_string.split('.') if len(parts) > 3: - return False, "Version string has too many periods" + return False, "Version string has too many periods [%s]"%version_string if len(parts) <= 0: - return False, "Version string unspecified" + return False, "Version string unspecified [%s]"%version_string for (i, p) in enumerate(parts): try: @@ -120,7 +120,6 @@ def _applelib_currentVersionFromSoVersion(source, target, env, for_signature): else: return "" - print("Version_String:%s"%version_string) version_string = ".".join(version_string.split('.')[:3]) valid, reason = _applelib_check_valid_version(version_string) @@ -144,7 +143,7 @@ def _applelib_compatVersionFromSoVersion(source, target, env, for_signature): valid, reason = _applelib_check_valid_version(version_string) if not valid: - raise AppleLinkInvalidCompatibityVersionException(reason) + raise AppleLinkInvalidCompatibilityVersionException(reason) return "-Wl,-compatibility_version,%s" % version_string @@ -182,6 +181,11 @@ def generate(env): env['LDMODULEFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -bundle') env['LDMODULECOM'] = '$LDMODULE -o ${TARGET} $LDMODULEFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS $_FRAMEWORKPATH $_FRAMEWORKS $FRAMEWORKSFLAGS' + # + env['__SHLIBVERSIONFLAGS'] = '${__libversionflags(__env__,"SHLIBVERSION","_SHLIBVERSIONFLAGS")}' + + + def exists(env): return env['PLATFORM'] == 'darwin' diff --git a/src/engine/SCons/Tool/applelink.xml b/src/engine/SCons/Tool/applelink.xml index c7c6d5b..c3346db 100644 --- a/src/engine/SCons/Tool/applelink.xml +++ b/src/engine/SCons/Tool/applelink.xml @@ -59,8 +59,8 @@ See its __doc__ string for a discussion of the format. </para> <para> The value is specified as X[.Y[.Z]] where X is between 1 and 65535, Y can be omitted or between 1 and - 255, Z can be omitted or between 1 and 255. This value will be set to &cv-link-SHLIBVERSION; if not - specified. + 255, Z can be omitted or between 1 and 255. This value will be derived from &cv-link-SHLIBVERSION; if not + specified. The lowest digit will be dropped and replaced by a 0. </para> <para>See MacOS's ld manpage for more details</para> </summary> @@ -76,8 +76,8 @@ See its __doc__ string for a discussion of the format. </para> <para> The value is specified as X[.Y[.Z]] where X is between 1 and 65535, Y can be omitted or between 1 and - 255, Z can be omitted or between 1 and 255. This value will be derived from &cv-link-SHLIBVERSION; if not - specified. The lowest digit will be dropped and replaced by a 0. + 255, Z can be omitted or between 1 and 255. This value will be set to &cv-link-SHLIBVERSION; if not + specified. </para> <para>See MacOS's ld manpage for more details</para> |