introduce QMAKE_RPATHLINKDIR (and QMAKE_LFLAGS_RPATHLINK)
complementary to QMAKE_RPATHDIR. this avoids that we need to sprinkle linux/gcc specific code all over the place. Task-number: QTBUG-27427 Change-Id: Iebafd1749d1a0d803704902473df8c743f074ddc Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
parent
5021c1d977
commit
d2179014f9
@ -15,6 +15,7 @@ QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB
|
||||
QMAKE_LFLAGS_SONAME += -Wl,-soname,
|
||||
QMAKE_LFLAGS_THREAD +=
|
||||
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
|
||||
QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link,
|
||||
|
||||
# -Bsymbolic-functions (ld) support
|
||||
QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
|
||||
|
@ -115,12 +115,12 @@ defineTest(qtAddModule) {
|
||||
PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
|
||||
|
||||
# Make sure we can link to uninstalled libraries
|
||||
unix:!mac:!isEmpty(QT.$${1}.libs) { # Use unmodified path, so /usr/lib also works
|
||||
!isEmpty(QT.$${1}.libs) { # Use unmodified path, so /usr/lib also works
|
||||
for(rpl, QT.$${1}.rpath_link): \
|
||||
QMAKE_LFLAGS *= -Wl,-rpath-link,$$rpl
|
||||
QMAKE_RPATHLINKDIR *= $$rpl
|
||||
!auto_use_privates:!isEqual(2, UsePrivate): \
|
||||
for(rpl, QT.$${1}.rpath_link_private): \
|
||||
QMAKE_LFLAGS *= -Wl,-rpath-link,$$rpl
|
||||
QMAKE_RPATHLINKDIR *= $$rpl
|
||||
}
|
||||
}
|
||||
# Only link to this module if a libs directory is set, else this is just a module
|
||||
@ -139,6 +139,7 @@ defineTest(qtAddModule) {
|
||||
export(QMAKE_LFLAGS)
|
||||
export(QMAKE_LIBDIR)
|
||||
export(QMAKE_RPATHDIR)
|
||||
export(QMAKE_RPATHLINKDIR)
|
||||
export(PRE_TARGETDEPS)
|
||||
return(true)
|
||||
}
|
||||
|
@ -170,6 +170,13 @@ UnixMakefileGenerator::init()
|
||||
project->values("QMAKE_LFLAGS") += var("QMAKE_LFLAGS_RPATH") + escapeFilePath(QFileInfo(rpathdirs[i].toQString()).absoluteFilePath());
|
||||
}
|
||||
}
|
||||
if (!project->isEmpty("QMAKE_RPATHLINKDIR")) {
|
||||
const ProStringList &rpathdirs = project->values("QMAKE_RPATHLINKDIR");
|
||||
for (int i = 0; i < rpathdirs.size(); ++i) {
|
||||
if (!project->isEmpty("QMAKE_LFLAGS_RPATHLINK"))
|
||||
project->values("QMAKE_LFLAGS") += var("QMAKE_LFLAGS_RPATHLINK") + escapeFilePath(QFileInfo(rpathdirs[i].toQString()).absoluteFilePath());
|
||||
}
|
||||
}
|
||||
|
||||
if(project->isActiveConfig("GNUmake") && !project->isEmpty("QMAKE_CFLAGS_DEPS"))
|
||||
include_deps = true; //do not generate deps
|
||||
|
Loading…
x
Reference in New Issue
Block a user