forked from qt-creator/qt-creator
ProjectManager: Simplify Project::setBuildSystemCreator()
Make it a template method. Change-Id: I3f0510c89d7f0bfe2f814dadc4d8de01c0e1cc89 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -44,7 +44,7 @@ public:
|
|||||||
|
|
||||||
setHasMakeInstallEquivalent(true);
|
setHasMakeInstallEquivalent(true);
|
||||||
|
|
||||||
setBuildSystemCreator([](Target *t) { return new AutotoolsBuildSystem(t); });
|
setBuildSystemCreator<AutotoolsBuildSystem>();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -413,7 +413,7 @@ CompilationDatabaseProject::CompilationDatabaseProject(const Utils::FilePath &pr
|
|||||||
setId(Constants::COMPILATIONDATABASEPROJECT_ID);
|
setId(Constants::COMPILATIONDATABASEPROJECT_ID);
|
||||||
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
||||||
setDisplayName(projectDirectory().fileName());
|
setDisplayName(projectDirectory().fileName());
|
||||||
setBuildSystemCreator([](Target *t) { return new CompilationDatabaseBuildSystem(t); });
|
setBuildSystemCreator<CompilationDatabaseBuildSystem>();
|
||||||
setExtraProjectFiles(
|
setExtraProjectFiles(
|
||||||
{projectFile.stringAppended(Constants::COMPILATIONDATABASEPROJECT_FILES_SUFFIX)});
|
{projectFile.stringAppended(Constants::COMPILATIONDATABASEPROJECT_FILES_SUFFIX)});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ public:
|
|||||||
setId(Constants::GENERICPROJECT_ID);
|
setId(Constants::GENERICPROJECT_ID);
|
||||||
setProjectLanguages(Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
setProjectLanguages(Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
||||||
setDisplayName(filePath.completeBaseName());
|
setDisplayName(filePath.completeBaseName());
|
||||||
setBuildSystemCreator([](Target *t) { return new GenericBuildSystem(t); });
|
setBuildSystemCreator<GenericBuildSystem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void editFilesTriggered();
|
void editFilesTriggered();
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ public:
|
|||||||
{
|
{
|
||||||
setId(Constants::C_HASKELL_PROJECT_ID);
|
setId(Constants::C_HASKELL_PROJECT_ID);
|
||||||
setDisplayName(fileName.toFileInfo().completeBaseName());
|
setDisplayName(fileName.toFileInfo().completeBaseName());
|
||||||
setBuildSystemCreator([](Target *t) { return new HaskellBuildSystem(t); });
|
setBuildSystemCreator<HaskellBuildSystem>();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ NimbleProject::NimbleProject(const Utils::FilePath &fileName)
|
|||||||
setDisplayName(fileName.completeBaseName());
|
setDisplayName(fileName.completeBaseName());
|
||||||
// ensure debugging is enabled (Nim plugin translates nim code to C code)
|
// ensure debugging is enabled (Nim plugin translates nim code to C code)
|
||||||
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
||||||
setBuildSystemCreator([] (Target *t) { return new NimbleBuildSystem(t); });
|
setBuildSystemCreator<NimbleBuildSystem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NimbleProject::toMap(Store &map) const
|
void NimbleProject::toMap(Store &map) const
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ NimProject::NimProject(const FilePath &filePath) : Project(Constants::C_NIM_MIME
|
|||||||
// ensure debugging is enabled (Nim plugin translates nim code to C code)
|
// ensure debugging is enabled (Nim plugin translates nim code to C code)
|
||||||
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
|
||||||
|
|
||||||
setBuildSystemCreator([](Target *t) { return new NimBuildSystem(t); });
|
setBuildSystemCreator<NimBuildSystem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
Tasks NimProject::projectIssues(const Kit *k) const
|
Tasks NimProject::projectIssues(const Kit *k) const
|
||||||
|
|||||||
@@ -1032,7 +1032,7 @@ Task Project::createProjectTask(Task::TaskType type, const QString &description)
|
|||||||
return Task(type, description, FilePath(), -1, Id());
|
return Task(type, description, FilePath(), -1, Id());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Project::setBuildSystemCreator(const std::function<BuildSystem *(Target *)> &creator)
|
void Project::setBuildSystemCreatorImpl(const std::function<BuildSystem *(Target *)> &creator)
|
||||||
{
|
{
|
||||||
d->m_buildSystemCreator = creator;
|
d->m_buildSystemCreator = creator;
|
||||||
}
|
}
|
||||||
@@ -1404,7 +1404,7 @@ public:
|
|||||||
{
|
{
|
||||||
setId(TEST_PROJECT_ID);
|
setId(TEST_PROJECT_ID);
|
||||||
setDisplayName(TEST_PROJECT_DISPLAYNAME);
|
setDisplayName(TEST_PROJECT_DISPLAYNAME);
|
||||||
setBuildSystemCreator([](Target *t) { return new TestBuildSystem(t); });
|
setBuildSystemCreator<TestBuildSystem>();
|
||||||
setNeedsBuildConfigurations(false);
|
setNeedsBuildConfigurations(false);
|
||||||
setNeedsDeployConfigurations(false);
|
setNeedsDeployConfigurations(false);
|
||||||
|
|
||||||
|
|||||||
@@ -232,10 +232,13 @@ protected:
|
|||||||
|
|
||||||
static ProjectExplorer::Task createProjectTask(ProjectExplorer::Task::TaskType type,
|
static ProjectExplorer::Task createProjectTask(ProjectExplorer::Task::TaskType type,
|
||||||
const QString &description);
|
const QString &description);
|
||||||
|
template <typename BuildSystemImpl>
|
||||||
void setBuildSystemCreator(const std::function<BuildSystem *(Target *)> &creator);
|
void setBuildSystemCreator() {
|
||||||
|
setBuildSystemCreatorImpl([](Target *t) { return new BuildSystemImpl(t); });
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
|
void setBuildSystemCreatorImpl(const std::function<BuildSystem *(Target *)> &creator);
|
||||||
|
|
||||||
void addTarget(std::unique_ptr<Target> &&target);
|
void addTarget(std::unique_ptr<Target> &&target);
|
||||||
|
|
||||||
void addProjectLanguage(Utils::Id id);
|
void addProjectLanguage(Utils::Id id);
|
||||||
|
|||||||
@@ -262,7 +262,7 @@ public:
|
|||||||
|
|
||||||
setId(Id::fromString(WORKSPACE_PROJECT_ID));
|
setId(Id::fromString(WORKSPACE_PROJECT_ID));
|
||||||
setDisplayName(projectDirectory().fileName());
|
setDisplayName(projectDirectory().fileName());
|
||||||
setBuildSystemCreator([](Target *t) { return new WorkspaceBuildSystem(t); });
|
setBuildSystemCreator<WorkspaceBuildSystem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
FilePath projectDirectory() const override
|
FilePath projectDirectory() const override
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ PythonProject::PythonProject(const FilePath &fileName)
|
|||||||
setProjectLanguages(Context(ProjectExplorer::Constants::PYTHON_LANGUAGE_ID));
|
setProjectLanguages(Context(ProjectExplorer::Constants::PYTHON_LANGUAGE_ID));
|
||||||
setDisplayName(fileName.completeBaseName());
|
setDisplayName(fileName.completeBaseName());
|
||||||
|
|
||||||
setBuildSystemCreator([](Target *t) { return new PythonBuildSystem(t); });
|
setBuildSystemCreator<PythonBuildSystem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
Tasks PythonProject::projectIssues(const Kit *k) const
|
Tasks PythonProject::projectIssues(const Kit *k) const
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ QmlProject::QmlProject(const Utils::FilePath &fileName)
|
|||||||
setDisplayName(fileName.completeBaseName());
|
setDisplayName(fileName.completeBaseName());
|
||||||
|
|
||||||
setNeedsBuildConfigurations(false);
|
setNeedsBuildConfigurations(false);
|
||||||
setBuildSystemCreator([](Target *t) { return new QmlBuildSystem(t); });
|
setBuildSystemCreator<QmlBuildSystem>();
|
||||||
|
|
||||||
if (Core::ICore::isQtDesignStudio()) {
|
if (Core::ICore::isQtDesignStudio()) {
|
||||||
if (allowOnlySingleProject()) {
|
if (allowOnlySingleProject()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user