From d36c4d87dbf9ac045edfff257cf3f7083bf0ea65 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Mon, 8 Dec 2014 13:47:47 +0100 Subject: QtSupport: Fix wrong build directory for examples By partially reverting 92fbbaea9b4d96f88d556c12cb40c5382a53df70 Task-number: QTCREATORBUG-13630 Change-Id: Ia04a224f2a12839d2cf27828009c945383a4c19c Reviewed-by: Eike Ziller --- src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp | 2 +- src/plugins/qtsupport/baseqtversion.cpp | 11 +++++++++++ src/plugins/qtsupport/baseqtversion.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) 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 &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 -- cgit v1.2.3