From 112254dc67917f6a113a229ec7aa3ce89aea48dd Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 12 May 2017 12:29:54 +0200 Subject: [PATCH] CMake: Improve detection of build directory in server-mode Detect both build directories next to the sources as well as below the source directory properly. Without this patch all files that normally go into "Build Directory" node were listed below "Source Directory" when the build directory was a child of the source directory. Task-number: QTCREATORBUG-18196 Change-Id: Ib8674489cfe04958f76df24904107bb7aa093162 Reviewed-by: Tim Jenssen --- src/plugins/cmakeprojectmanager/servermodereader.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 874c8f4f74c..59f6113b36b 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -702,14 +702,15 @@ void ServerModeReader::addFileGroups(ProjectNode *targetRoot, } // Split up files in groups (based on location): + const bool inSourceBuild = (m_parameters.buildDirectory == m_parameters.sourceDirectory); QList sourceFileNodes; QList buildFileNodes; QList otherFileNodes; foreach (FileNode *fn, toList) { - if (fn->filePath().isChildOf(m_parameters.sourceDirectory)) - sourceFileNodes.append(fn); - else if (fn->filePath().isChildOf(m_parameters.buildDirectory)) + if (fn->filePath().isChildOf(m_parameters.buildDirectory) && !inSourceBuild) buildFileNodes.append(fn); + else if (fn->filePath().isChildOf(m_parameters.sourceDirectory)) + sourceFileNodes.append(fn); else otherFileNodes.append(fn); }