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
1 changed files with 3 additions and 1 deletions

View File

@ -107,6 +107,8 @@ def parse_flags(self, line, uselib_store, env=None, force_static=False, posix=No
lex.commenters = ''
lst = list(lex)
so_re = re.compile(r"\.so(?:\.[0-9]+)*$")
# append_unique is not always possible
# for example, apple flags may require both -arch i386 and -arch ppc
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('CXXFLAGS', 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
else:
self.to_log('Unhandled flag %r' % x)