CMake: Fine tune finding a suitable targets for files

Ignore targets that have no include directories, those are in general
not targets that are very useful.

Change-Id: I1cd1f7dffc73eace2f7a0897bc15dea7e6bc5fee
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
Daniel Teske
2014-11-19 18:33:04 +01:00
parent 8455efa2ec
commit f88ad0ce42

View File

@@ -874,6 +874,8 @@ void CMakeCbpParser::sortFiles()
int bestIncludeCount = -1; int bestIncludeCount = -1;
for (int i = 0; i < m_buildTargets.size(); ++i) { for (int i = 0; i < m_buildTargets.size(); ++i) {
const CMakeBuildTarget &target = m_buildTargets.at(i); const CMakeBuildTarget &target = m_buildTargets.at(i);
if (target.includeFiles.isEmpty())
continue;
if (target.sourceDirectory == m_sourceDirectory if (target.sourceDirectory == m_sourceDirectory
&& target.includeFiles.count() > bestIncludeCount) { && target.includeFiles.count() > bestIncludeCount) {
bestIncludeCount = target.includeFiles.count(); bestIncludeCount = target.includeFiles.count();
@@ -893,6 +895,8 @@ void CMakeCbpParser::sortFiles()
for (int i = 0; i < m_buildTargets.size(); ++i) { for (int i = 0; i < m_buildTargets.size(); ++i) {
const CMakeBuildTarget &target = m_buildTargets.at(i); const CMakeBuildTarget &target = m_buildTargets.at(i);
if (target.includeFiles.isEmpty())
continue;
if (fileName.isChildOf(Utils::FileName::fromString(target.sourceDirectory)) && if (fileName.isChildOf(Utils::FileName::fromString(target.sourceDirectory)) &&
(target.sourceDirectory.size() > bestLength || (target.sourceDirectory.size() > bestLength ||
(target.sourceDirectory.size() == bestLength && (target.sourceDirectory.size() == bestLength &&