diff options
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp | 2 | ||||
-rw-r--r-- | src/plugins/qtsupport/baseqtversion.cpp | 11 | ||||
-rw-r--r-- | src/plugins/qtsupport/baseqtversion.h | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index 8ab2c79d5f..f0eb2a96f2 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -651,7 +651,7 @@ QmakeBuildInfo *QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k, // check if this project is in the source directory: Utils::FileName projectFilePath = Utils::FileName::fromString(projectPath); - if (version->isSubProject(projectFilePath)) { + if (version->isInSourceDirectory(projectFilePath)) { // assemble build directory QString projectDirectory = projectFilePath.toFileInfo().absolutePath(); QDir qtSourceDir = QDir(version->sourcePath().toString()); diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 0038fa3eab..ddaf755b63 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -1478,6 +1478,17 @@ FileName BaseQtVersion::sourcePath(const QHash<QString, QString> &versionInfo) return FileName::fromUserInput(sourcePath); } +bool BaseQtVersion::isInSourceDirectory(const Utils::FileName &filePath) +{ + const Utils::FileName &source = sourcePath(); + if (source.isEmpty()) + return false; + QDir dir = QDir(source.toString()); + if (dir.dirName() == QLatin1String("qtbase")) + dir.cdUp(); + return filePath.isChildOf(dir); +} + bool BaseQtVersion::isSubProject(const Utils::FileName &filePath) { const Utils::FileName &source = sourcePath(); diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h index e876c24bc9..7f9ef7b1ae 100644 --- a/src/plugins/qtsupport/baseqtversion.h +++ b/src/plugins/qtsupport/baseqtversion.h @@ -124,6 +124,7 @@ public: virtual Utils::Environment qmakeRunEnvironment() const; virtual Utils::FileName sourcePath() const; + bool isInSourceDirectory(const Utils::FileName &filePath); bool isSubProject(const Utils::FileName &filePath); // used by UiCodeModelSupport |