diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 28b73b3616d52889ab61d52756fca0efd830f078..d19792f49f08036799a12f89ae6eba7d6d5355d2 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -875,12 +875,16 @@ void CMakeCbpParser::sortFiles() } else { int bestLength = -1; int bestIndex = -1; + int bestIncludeCount = -1; for (int i = 0; i < m_buildTargets.size(); ++i) { const CMakeBuildTarget &target = m_buildTargets.at(i); - if (fileName.isChildOf(Utils::FileName::fromString(target.sourceDirectory)) - && target.sourceDirectory.size() > bestLength) { + if (fileName.isChildOf(Utils::FileName::fromString(target.sourceDirectory)) && + (target.sourceDirectory.size() > bestLength || + (target.sourceDirectory.size() == bestLength && + target.includeFiles.count() > bestIncludeCount))) { bestLength = target.sourceDirectory.size(); + bestIncludeCount = target.includeFiles.count(); bestIndex = i; } }