QMakeProjectManager: Use ProjectPartBuilder

...as the other project managers.

This removes extra code paths, duplication and improves classification
of source files (ambiguous headers).

Change-Id: Iae05cbbc61ab2e5dd841ae617bec994e0a1e52d5
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Nikolai Kosjar
2016-12-05 17:30:56 +01:00
parent 43c6e97529
commit 0265442c93
5 changed files with 37 additions and 99 deletions

View File

@@ -101,6 +101,11 @@ void BaseProjectPartBuilder::setPreCompiledHeaders(const QStringList &preCompile
m_templatePart->precompiledHeaders = preCompiledHeaders;
}
void BaseProjectPartBuilder::setSelectedForBuilding(bool yesno)
{
m_templatePart->selectedForBuilding = yesno;
}
void BaseProjectPartBuilder::setProjectFile(const QString &projectFile)
{
m_templatePart->projectFile = projectFile;
@@ -262,13 +267,6 @@ private:
} // anynomous
void BaseProjectPartBuilder::evaluateToolChain(ProjectPart &projectPart,
const ToolChainInterface &toolChain)
{
ToolChainEvaluator evaluator(projectPart, toolChain);
evaluator.evaluate();
}
void BaseProjectPartBuilder::createProjectPart(const ProjectFiles &projectFiles,
const QString &partName,
ProjectPart::LanguageVersion languageVersion,
@@ -281,8 +279,10 @@ void BaseProjectPartBuilder::createProjectPart(const ProjectFiles &projectFiles,
QTC_ASSERT(part->project, return);
// TODO: If not toolchain is set, show a warning
if (const ToolChainInterfacePtr toolChain = selectToolChain(languageVersion))
evaluateToolChain(*part.data(), *toolChain.get());
if (const ToolChainInterfacePtr toolChain = selectToolChain(languageVersion)) {
ToolChainEvaluator evaluator(*part.data(), *toolChain.get());
evaluator.evaluate();
}
part->languageExtensions |= languageExtensions;
part->updateLanguageFeatures();

View File

@@ -60,13 +60,12 @@ public:
void setPreCompiledHeaders(const QStringList &preCompiledHeaders);
void setSelectedForBuilding(bool yesno);
using FileClassifier = std::function<ProjectFile::Kind (const QString &filePath)>;
QList<Core::Id> createProjectPartsForFiles(const QStringList &filePaths,
FileClassifier fileClassifier = FileClassifier());
static void evaluateToolChain(ProjectPart &projectPart,
const ToolChainInterface &selectToolChain);
private:
void createProjectPart(const ProjectFiles &projectFiles,
const QString &partName,

View File

@@ -140,13 +140,4 @@ ProjectPartBuilder::ProjectPartBuilder(ProjectInfo &projectInfo)
{
}
void ProjectPartBuilder::evaluateToolChain(ProjectPart &projectPart,
ProjectExplorer::ToolChain &toolChain,
const ProjectExplorer::Kit *kit,
const QStringList commandLineFlags)
{
const ToolChainImpl toolChainImpl(toolChain, kit, commandLineFlags);
BaseProjectPartBuilder::evaluateToolChain(projectPart, toolChainImpl);
}
} // namespace CppTools

View File

@@ -29,11 +29,6 @@
#include "cppbaseprojectpartbuilder.h"
namespace ProjectExplorer {
class Kit;
class ToolChain;
}
namespace CppTools {
class ProjectInfo;
@@ -42,11 +37,6 @@ class CPPTOOLS_EXPORT ProjectPartBuilder : public BaseProjectPartBuilder
{
public:
ProjectPartBuilder(ProjectInfo &projectInfo);
static void evaluateToolChain(ProjectPart &projectPart,
ProjectExplorer::ToolChain &toolChain,
const ProjectExplorer::Kit *kit,
const QStringList commandLineFlags);
};
} // namespace CppTools