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_SONAME += -Wl,-soname,
|
||||||
QMAKE_LFLAGS_THREAD +=
|
QMAKE_LFLAGS_THREAD +=
|
||||||
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
|
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
|
||||||
|
QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link,
|
||||||
|
|
||||||
# -Bsymbolic-functions (ld) support
|
# -Bsymbolic-functions (ld) support
|
||||||
QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
|
QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
|
||||||
|
@ -115,12 +115,12 @@ defineTest(qtAddModule) {
|
|||||||
PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
|
PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
|
||||||
|
|
||||||
# Make sure we can link to uninstalled libraries
|
# 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): \
|
for(rpl, QT.$${1}.rpath_link): \
|
||||||
QMAKE_LFLAGS *= -Wl,-rpath-link,$$rpl
|
QMAKE_RPATHLINKDIR *= $$rpl
|
||||||
!auto_use_privates:!isEqual(2, UsePrivate): \
|
!auto_use_privates:!isEqual(2, UsePrivate): \
|
||||||
for(rpl, QT.$${1}.rpath_link_private): \
|
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
|
# 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_LFLAGS)
|
||||||
export(QMAKE_LIBDIR)
|
export(QMAKE_LIBDIR)
|
||||||
export(QMAKE_RPATHDIR)
|
export(QMAKE_RPATHDIR)
|
||||||
|
export(QMAKE_RPATHLINKDIR)
|
||||||
export(PRE_TARGETDEPS)
|
export(PRE_TARGETDEPS)
|
||||||
return(true)
|
return(true)
|
||||||
}
|
}
|
||||||
|
@ -170,6 +170,13 @@ UnixMakefileGenerator::init()
|
|||||||
project->values("QMAKE_LFLAGS") += var("QMAKE_LFLAGS_RPATH") + escapeFilePath(QFileInfo(rpathdirs[i].toQString()).absoluteFilePath());
|
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"))
|
if(project->isActiveConfig("GNUmake") && !project->isEmpty("QMAKE_CFLAGS_DEPS"))
|
||||||
include_deps = true; //do not generate deps
|
include_deps = true; //do not generate deps
|
||||||
|
Loading…
x
Reference in New Issue
Block a user