2
0
mirror of https://gitlab.com/ita1024/waf.git synced 2024-11-22 01:46:15 +01:00

Support versioned shared libraries.

Shared libraries often use a suffix encoding their version which should
be handled when parsing linker flags.
This commit is contained in:
Severin Strobl 2019-11-19 10:32:09 +01:00 committed by Thomas Nagy
parent d97ac90419
commit 799001bfae

View File

@ -107,6 +107,8 @@ def parse_flags(self, line, uselib_store, env=None, force_static=False, posix=No
lex.commenters = '' lex.commenters = ''
lst = list(lex) lst = list(lex)
so_re = re.compile(r"\.so(?:\.[0-9]+)*$")
# append_unique is not always possible # append_unique is not always possible
# for example, apple flags may require both -arch i386 and -arch ppc # for example, apple flags may require both -arch i386 and -arch ppc
uselib = uselib_store uselib = uselib_store
@ -184,7 +186,7 @@ def parse_flags(self, line, uselib_store, env=None, force_static=False, posix=No
app('CFLAGS', tmp) app('CFLAGS', tmp)
app('CXXFLAGS', tmp) app('CXXFLAGS', tmp)
app('LINKFLAGS', tmp) app('LINKFLAGS', tmp)
elif x.endswith(('.a', '.so', '.dylib', '.lib')): elif x.endswith(('.a', '.dylib', '.lib')) or so_re.search(x):
appu('LINKFLAGS', x) # not cool, #762 appu('LINKFLAGS', x) # not cool, #762
else: else:
self.to_log('Unhandled flag %r' % x) self.to_log('Unhandled flag %r' % x)