summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-12-10 16:32:18 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2019-12-17 09:42:40 +0000
commit77126dc4b8bcd462daa2642aac1565521fbcbe5a (patch)
tree0bea04def7da5a98e02f9308d5730fc6d3863953
parentbe9cad77d220715f50c1a76dc5be93f3bbaaa932 (diff)
downloadqt-creator-77126dc4b8bcd462daa2642aac1565521fbcbe5a.tar.gz
QmakeProjectManager: Extend Qt examples deployment hack
E.g. for Qnx, QT_INSTALL_PREFIX is not a prefix of QT_INSTALL_EXAMPLES. Fixes: QTCREATORBUG-22592 Change-Id: I3092cd76af01519783e1162ab8e79caaf0836f00 Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp
index fc3be830c7..16410724b9 100644
--- a/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeparsernodes.cpp
@@ -1951,11 +1951,12 @@ InstallsList QmakeProFile::installsList(const QtSupport::ProFileReader *reader,
if (itemList.isEmpty())
return result;
- const QString installPrefix
- = reader->propertyValue(QLatin1String("QT_INSTALL_PREFIX"));
- const QString devInstallPrefix
- = reader->propertyValue(QLatin1String("QT_INSTALL_PREFIX/dev"));
- bool fixInstallPrefix = (installPrefix != devInstallPrefix);
+ const QStringList installPrefixVars{"QT_INSTALL_PREFIX", "QT_INSTALL_EXAMPLES"};
+ QList<QPair<QString, QString>> installPrefixValues;
+ for (const QString &installPrefix : installPrefixVars) {
+ installPrefixValues << qMakePair(reader->propertyValue(installPrefix),
+ reader->propertyValue(installPrefix + "/dev"));
+ }
foreach (const QString &item, itemList) {
const QStringList config = reader->values(item + ".CONFIG");
@@ -1974,13 +1975,18 @@ InstallsList QmakeProFile::installsList(const QtSupport::ProFileReader *reader,
}
QString itemPath = itemPaths.last();
- if (fixInstallPrefix && itemPath.startsWith(installPrefix)) {
+ for (const auto &prefixValuePair : qAsConst(installPrefixValues)) {
+ if (prefixValuePair.first == prefixValuePair.second
+ || !itemPath.startsWith(prefixValuePair.first)) {
+ continue;
+ }
// This is a hack for projects which install into $$[QT_INSTALL_*],
// in particular Qt itself, examples being most relevant.
// Projects which implement their own install path policy must
// parametrize their INSTALLS themselves depending on the intended
// installation/deployment mode.
- itemPath.replace(0, installPrefix.length(), devInstallPrefix);
+ itemPath.replace(0, prefixValuePair.first.length(), prefixValuePair.second);
+ break;
}
if (item == QLatin1String("target")) {
if (active)