Changing string based api to BuildConfiguration based api.

Builds, but I'm pretty sure it doesn't *work* :)
This commit is contained in:
con
2009-09-24 16:02:02 +02:00
parent 30362e1050
commit acbd4513e3
30 changed files with 737 additions and 440 deletions

View File

@@ -55,6 +55,7 @@
using namespace GenericProjectManager;
using namespace GenericProjectManager::Internal;
using namespace ProjectExplorer;
namespace {
@@ -105,6 +106,40 @@ public:
} // end of anonymous namespace
/*!
\class GenericBuildConfigurationFactory
*/
GenericBuildConfigurationFactory::GenericBuildConfigurationFactory(GenericProject *project)
: IBuildConfigurationFactory(project),
m_project(project)
{
}
GenericBuildConfigurationFactory::~GenericBuildConfigurationFactory()
{
}
QStringList GenericBuildConfigurationFactory::availableCreationTypes() const
{
return QStringList() << "Create";
}
QString GenericBuildConfigurationFactory::displayNameForType(const QString &type) const
{
return tr("Create");
}
QList<BuildConfiguration *> GenericBuildConfigurationFactory::create(const QString &type) const
{
return QList<BuildConfiguration *>() << new BuildConfiguration;
}
QList<BuildConfiguration *> GenericBuildConfigurationFactory::createDefaultConfigurations() const
{
return QList<BuildConfiguration *>() << new BuildConfiguration;
}
////////////////////////////////////////////////////////////////////////////////////
// GenericProject
////////////////////////////////////////////////////////////////////////////////////
@@ -112,6 +147,7 @@ public:
GenericProject::GenericProject(Manager *manager, const QString &fileName)
: m_manager(manager),
m_fileName(fileName),
m_buildConfigurationFactory(new GenericBuildConfigurationFactory(this)),
m_toolChain(0)
{
QFileInfo fileInfo(m_fileName);
@@ -136,6 +172,11 @@ GenericProject::~GenericProject()
delete m_toolChain;
}
IBuildConfigurationFactory *GenericProject::buildConfigurationFactory() const
{
return m_buildConfigurationFactory;
}
QString GenericProject::filesFileName() const
{ return m_filesFileName; }
@@ -355,9 +396,9 @@ void GenericProject::setToolChainType(ProjectExplorer::ToolChain::ToolChainType
}
}
QString GenericProject::buildParser(const QString &buildConfiguration) const
QString GenericProject::buildParser(BuildConfiguration *configuration) const
{
Q_UNUSED(buildConfiguration)
Q_UNUSED(configuration)
if (m_toolChain) {
switch (m_toolChain->type()) {
case ProjectExplorer::ToolChain::GCC:
@@ -410,14 +451,15 @@ bool GenericProject::isApplication() const
return true;
}
ProjectExplorer::Environment GenericProject::environment(const QString &) const
ProjectExplorer::Environment GenericProject::environment(BuildConfiguration *configuration) const
{
Q_UNUSED(configuration)
return ProjectExplorer::Environment::systemEnvironment();
}
QString GenericProject::buildDirectory(const QString &buildConfiguration) const
QString GenericProject::buildDirectory(BuildConfiguration *configuration) const
{
QString buildDirectory = value(buildConfiguration, "buildDirectory").toString();
QString buildDirectory = configuration->value("buildDirectory").toString();
if (buildDirectory.isEmpty()) {
QFileInfo fileInfo(m_fileName);
@@ -438,11 +480,11 @@ QList<ProjectExplorer::BuildConfigWidget*> GenericProject::subConfigWidgets()
return QList<ProjectExplorer::BuildConfigWidget*>();
}
bool GenericProject::newBuildConfiguration(const QString &buildConfiguration)
{
makeStep()->setBuildTarget(buildConfiguration, "all", true);
return true;
}
// bool GenericProject::newBuildConfiguration(const QString &buildConfiguration)
// {
// makeStep()->setBuildTarget(buildConfiguration, "all", true);
// return true;
// }
GenericProjectNode *GenericProject::rootProjectNode() const
{
@@ -482,14 +524,15 @@ bool GenericProject::restoreSettingsImpl(ProjectExplorer::PersistentSettingsRead
const QLatin1String all("all");
addBuildConfiguration(all);
setActiveBuildConfiguration(all);
ProjectExplorer::BuildConfiguration *bc = new BuildConfiguration(all);
addBuildConfiguration(bc);
setActiveBuildConfiguration(bc);
makeStep->setBuildTarget(all, all, /* on = */ true);
const QLatin1String buildDirectory("buildDirectory");
const QFileInfo fileInfo(file()->fileName());
setValue(all, buildDirectory, fileInfo.absolutePath());
bc->setValue(buildDirectory, fileInfo.absolutePath());
}
using namespace ProjectExplorer;
@@ -568,10 +611,10 @@ GenericBuildSettingsWidget::~GenericBuildSettingsWidget()
QString GenericBuildSettingsWidget::displayName() const
{ return tr("Generic Manager"); }
void GenericBuildSettingsWidget::init(const QString &buildConfiguration)
void GenericBuildSettingsWidget::init(const QString &buildConfigurationName)
{
m_buildConfiguration = buildConfiguration;
m_pathChooser->setPath(m_project->buildDirectory(buildConfiguration));
m_buildConfiguration = buildConfigurationName;
m_pathChooser->setPath(m_project->buildDirectory(m_project->buildConfiguration(buildConfigurationName)));
}
void GenericBuildSettingsWidget::buildDirectoryChanged()