forked from qt-creator/qt-creator
		
	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:
		@@ -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();
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user