Fix resolving of libraries on Apple platforms
Qt couldn't be configured with -system-zlib on macOS, because qmake failed to find "/usr/lib/libz.dylib". The library path is something along the lines of "/Applications/Xcode.app/.../MacOSX10.14.sdk/usr/lib" which doesn't contain "libz.dylib". But it contains "libz.tbd", which is a YAML-file pointing to "/usr/lib/libz.dylib". One can pass the absolute path to this tbd file to the linker, which will then pick up "/usr/lib/libz.dylib". Introduce a new variable QMAKE_EXTENSIONS_AUX_SHLIB, which is a list of auxiliary extensions for shared libs, and add the "tbd" extension to it on macOS. Change-Id: I083b79a69d00232e35f9d6164ffa86cb473f1742 Fixes: QTBUG-72745 Fixes: QTBUG-72964 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>bb10
parent
f1aa4c076f
commit
69bd238ad8
|
|
@ -14,6 +14,7 @@ include(unix.conf)
|
|||
|
||||
QMAKE_RESOURCE = /Developer/Tools/Rez
|
||||
QMAKE_EXTENSION_SHLIB = dylib
|
||||
QMAKE_EXTENSIONS_AUX_SHLIB = tbd
|
||||
QMAKE_LIBDIR =
|
||||
|
||||
# sdk.prf will prefix the proper SDK sysroot
|
||||
|
|
|
|||
|
|
@ -531,8 +531,11 @@ defineTest(qtConfResolveLibs) {
|
|||
unix {
|
||||
# Under UNIX, we look for actual shared libraries, in addition
|
||||
# to static ones.
|
||||
shexts = $$QMAKE_EXTENSION_SHLIB $$QMAKE_EXTENSIONS_AUX_SHLIB
|
||||
for (ext, shexts) {
|
||||
lcan += $${QMAKE_PREFIX_SHLIB}$${lib}.$${ext}
|
||||
}
|
||||
lcan += \
|
||||
$${QMAKE_PREFIX_SHLIB}$${lib}.$${QMAKE_EXTENSION_SHLIB} \
|
||||
$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
|
||||
} else {
|
||||
# Under Windows, we look only for static libraries, as even for DLLs
|
||||
|
|
|
|||
Loading…
Reference in New Issue