diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index 8dedb8b84dc522208942c932f95f13617dc909c1..0dba078adcacaad7a466f1f3b5a25209f02e847c 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -211,10 +211,10 @@ CMakeBuildConfiguration *CMakeBuildConfigurationFactory::create(ProjectExplorer:
     bc->setDisplayName(buildConfigurationName);
 
     MakeStep *makeStep = new MakeStep(bc);
-    bc->insertStep(ProjectExplorer::Build, 0, makeStep);
+    bc->insertStep(ProjectExplorer::BuildStep::Build, 0, makeStep);
 
     MakeStep *cleanMakeStep = new MakeStep(bc);
-    bc->insertStep(ProjectExplorer::Clean, 0, cleanMakeStep);
+    bc->insertStep(ProjectExplorer::BuildStep::Clean, 0, cleanMakeStep);
     cleanMakeStep->setAdditionalArguments(QStringList() << "clean");
     cleanMakeStep->setClean(true);
 
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 283d07624cfe40ce9c1eaff6b13fcb6761319fa3..7335905ffb5d0ec6a663270d2dee0c607c12de37 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -521,7 +521,7 @@ bool CMakeProject::fromMap(const QVariantMap &map)
 
     if (!hasUserFile && hasBuildTarget("all")) {
         MakeStep *makeStep = qobject_cast<MakeStep *>(
-                activeTarget()->activeBuildConfiguration()->steps(ProjectExplorer::Build).at(0));
+                activeTarget()->activeBuildConfiguration()->steps(ProjectExplorer::BuildStep::Build).at(0));
         Q_ASSERT(makeStep);
         makeStep->setBuildTarget("all", true);
     }
diff --git a/src/plugins/cmakeprojectmanager/cmaketarget.cpp b/src/plugins/cmakeprojectmanager/cmaketarget.cpp
index f0feff5e31bc3a1192d4b7d2299765896bb886d5..96eaf8ead1fddd061e06fa85d07deb2c1adff137 100644
--- a/src/plugins/cmakeprojectmanager/cmaketarget.cpp
+++ b/src/plugins/cmakeprojectmanager/cmaketarget.cpp
@@ -188,10 +188,10 @@ CMakeTarget *CMakeTargetFactory::create(ProjectExplorer::Project *parent, const
     bc->setDisplayName("all");
 
     // Now create a standard build configuration
-    bc->insertStep(ProjectExplorer::Build, 0, new MakeStep(bc));
+    bc->insertStep(ProjectExplorer::BuildStep::Build, 0, new MakeStep(bc));
 
     MakeStep *cleanMakeStep = new MakeStep(bc);
-    bc->insertStep(ProjectExplorer::Clean, 0, cleanMakeStep);
+    bc->insertStep(ProjectExplorer::BuildStep::Clean, 0, cleanMakeStep);
     cleanMakeStep->setAdditionalArguments(QStringList() << "clean");
     cleanMakeStep->setClean(true);
 
diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp
index f5cae7b52d2de1898a67dcd81122edfe180391e4..e888a4356b02f6c4d1c0d4a7405bc392c8f97858 100644
--- a/src/plugins/cmakeprojectmanager/makestep.cpp
+++ b/src/plugins/cmakeprojectmanager/makestep.cpp
@@ -317,7 +317,7 @@ MakeStepFactory::~MakeStepFactory()
 {
 }
 
-bool MakeStepFactory::canCreate(BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const
+bool MakeStepFactory::canCreate(BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id) const
 {
     Q_UNUSED(type)
     if (!qobject_cast<CMakeBuildConfiguration *>(parent))
@@ -325,32 +325,32 @@ bool MakeStepFactory::canCreate(BuildConfiguration *parent, ProjectExplorer::Ste
     return QLatin1String(MS_ID) == id;
 }
 
-BuildStep *MakeStepFactory::create(BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id)
+BuildStep *MakeStepFactory::create(BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id)
 {
     if (!canCreate(parent, type, id))
         return 0;
     return new MakeStep(parent);
 }
 
-bool MakeStepFactory::canClone(BuildConfiguration *parent, ProjectExplorer::StepType type, BuildStep *source) const
+bool MakeStepFactory::canClone(BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, BuildStep *source) const
 {
     return canCreate(parent, type, source->id());
 }
 
-BuildStep *MakeStepFactory::clone(BuildConfiguration *parent, ProjectExplorer::StepType type, BuildStep *source)
+BuildStep *MakeStepFactory::clone(BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, BuildStep *source)
 {
     if (!canClone(parent, type, source))
         return 0;
     return new MakeStep(parent, static_cast<MakeStep *>(source));
 }
 
-bool MakeStepFactory::canRestore(BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const
+bool MakeStepFactory::canRestore(BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map) const
 {
     QString id(ProjectExplorer::idFromMap(map));
     return canCreate(parent, type, id);
 }
 
-BuildStep *MakeStepFactory::restore(BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map)
+BuildStep *MakeStepFactory::restore(BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map)
 {
     if (!canRestore(parent, type, map))
         return 0;
@@ -361,7 +361,7 @@ BuildStep *MakeStepFactory::restore(BuildConfiguration *parent, ProjectExplorer:
     return 0;
 }
 
-QStringList MakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const
+QStringList MakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type) const
 {
     Q_UNUSED(type)
     if (!qobject_cast<CMakeBuildConfiguration *>(parent))
diff --git a/src/plugins/cmakeprojectmanager/makestep.h b/src/plugins/cmakeprojectmanager/makestep.h
index cba520e234c107e61ea2606d28068e5955afbbe7..be759bc2e681c669e78912df157eb93a14a3f29e 100644
--- a/src/plugins/cmakeprojectmanager/makestep.h
+++ b/src/plugins/cmakeprojectmanager/makestep.h
@@ -119,14 +119,14 @@ public:
     explicit MakeStepFactory(QObject *parent = 0);
     virtual ~MakeStepFactory();
 
-    virtual bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const;
-    virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id);
-    virtual bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source) const;
-    virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source);
-    virtual bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const;
-    virtual ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map);
-
-    virtual QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc, ProjectExplorer::StepType type) const;
+    virtual bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id) const;
+    virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id);
+    virtual bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *source) const;
+    virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *source);
+    virtual bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map) const;
+    virtual ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map);
+
+    virtual QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc, ProjectExplorer::BuildStep::Type type) const;
     virtual QString displayNameForId(const QString &id) const;
 };
 
diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
index 72c96f8da880b3d543ef3c4477a4a763ed58c095..1d575e33c379fc7e42bf07862c47aae1880a3a19 100644
--- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
+++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp
@@ -174,7 +174,7 @@ BuildConfiguration *GenericBuildConfigurationFactory::create(ProjectExplorer::Ta
     bc->setDisplayName(buildConfigurationName);
 
     GenericMakeStep *makeStep = new GenericMakeStep(bc);
-    bc->insertStep(ProjectExplorer::Build, 0, makeStep);
+    bc->insertStep(ProjectExplorer::BuildStep::Build, 0, makeStep);
     makeStep->setBuildTarget("all", /* on = */ true);
 
     target->addBuildConfiguration(bc); // also makes the name unique...
diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp
index 655717bfb83b3d4abc840c4f2dbedbe45db6228a..884b86338b0a4d626fd81fb4177554902bc26359 100644
--- a/src/plugins/genericprojectmanager/genericmakestep.cpp
+++ b/src/plugins/genericprojectmanager/genericmakestep.cpp
@@ -308,7 +308,7 @@ GenericMakeStepFactory::~GenericMakeStepFactory()
 }
 
 bool GenericMakeStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent,
-                                       ProjectExplorer::StepType type,
+                                       ProjectExplorer::BuildStep::Type type,
                                        const QString &id) const
 {
     Q_UNUSED(type)
@@ -318,7 +318,7 @@ bool GenericMakeStepFactory::canCreate(ProjectExplorer::BuildConfiguration *pare
 }
 
 ProjectExplorer::BuildStep *GenericMakeStepFactory::create(ProjectExplorer::BuildConfiguration *parent,
-                                                           ProjectExplorer::StepType type,
+                                                           ProjectExplorer::BuildStep::Type type,
                                                            const QString &id)
 {
     if (!canCreate(parent, type, id))
@@ -327,7 +327,7 @@ ProjectExplorer::BuildStep *GenericMakeStepFactory::create(ProjectExplorer::Buil
 }
 
 bool GenericMakeStepFactory::canClone(ProjectExplorer::BuildConfiguration *parent,
-                                      ProjectExplorer::StepType type,
+                                      ProjectExplorer::BuildStep::Type type,
                                       ProjectExplorer::BuildStep *source) const
 {
     const QString id(source->id());
@@ -335,7 +335,7 @@ bool GenericMakeStepFactory::canClone(ProjectExplorer::BuildConfiguration *paren
 }
 
 ProjectExplorer::BuildStep *GenericMakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent,
-                                                          ProjectExplorer::StepType type,
+                                                          ProjectExplorer::BuildStep::Type type,
                                                           ProjectExplorer::BuildStep *source)
 {
     if (!canClone(parent, type, source))
@@ -346,7 +346,7 @@ ProjectExplorer::BuildStep *GenericMakeStepFactory::clone(ProjectExplorer::Build
 }
 
 bool GenericMakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent,
-                                        ProjectExplorer::StepType type,
+                                        ProjectExplorer::BuildStep::Type type,
                                         const QVariantMap &map) const
 {
     QString id(ProjectExplorer::idFromMap(map));
@@ -354,7 +354,7 @@ bool GenericMakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *par
 }
 
 ProjectExplorer::BuildStep *GenericMakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent,
-                                                            ProjectExplorer::StepType type,
+                                                            ProjectExplorer::BuildStep::Type type,
                                                             const QVariantMap &map)
 {
     if (!canRestore(parent, type, map))
@@ -367,7 +367,7 @@ ProjectExplorer::BuildStep *GenericMakeStepFactory::restore(ProjectExplorer::Bui
 }
 
 QStringList GenericMakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent,
-                                                         ProjectExplorer::StepType type) const
+                                                         ProjectExplorer::BuildStep::Type type) const
 {
     Q_UNUSED(type)
     if (!qobject_cast<GenericBuildConfiguration *>(parent))
diff --git a/src/plugins/genericprojectmanager/genericmakestep.h b/src/plugins/genericprojectmanager/genericmakestep.h
index fbe22581c218fe67ecab6b412fa8bce244fcdf7f..28e9e20d15f6a61cd0b0e02f50cf78924316940a 100644
--- a/src/plugins/genericprojectmanager/genericmakestep.h
+++ b/src/plugins/genericprojectmanager/genericmakestep.h
@@ -114,26 +114,26 @@ public:
     virtual ~GenericMakeStepFactory();
 
     virtual bool canCreate(ProjectExplorer::BuildConfiguration *parent,
-                           ProjectExplorer::StepType type,
+                           ProjectExplorer::BuildStep::Type type,
                            const QString &id) const;
     virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent,
-                                               ProjectExplorer::StepType type,
+                                               ProjectExplorer::BuildStep::Type type,
                                                const QString &id);
     virtual bool canClone(ProjectExplorer::BuildConfiguration *parent,
-                          ProjectExplorer::StepType type,
+                          ProjectExplorer::BuildStep::Type type,
                           ProjectExplorer::BuildStep *source) const;
     virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent,
-                                              ProjectExplorer::StepType type,
+                                              ProjectExplorer::BuildStep::Type type,
                                               ProjectExplorer::BuildStep *source);
     virtual bool canRestore(ProjectExplorer::BuildConfiguration *parent,
-                            ProjectExplorer::StepType type,
+                            ProjectExplorer::BuildStep::Type type,
                             const QVariantMap &map) const;
     virtual ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent,
-                                                ProjectExplorer::StepType type,
+                                                ProjectExplorer::BuildStep::Type type,
                                                 const QVariantMap &map);
 
     virtual QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc,
-                                             ProjectExplorer::StepType type) const;
+                                             ProjectExplorer::BuildStep::Type type) const;
     virtual QString displayNameForId(const QString &id) const;
 };
 
diff --git a/src/plugins/genericprojectmanager/generictarget.cpp b/src/plugins/genericprojectmanager/generictarget.cpp
index d62630317e9ec95b298b8c8a10d07387dc7368a5..c6d373db0277220b1190f60bc35e5a82086f54cb 100644
--- a/src/plugins/genericprojectmanager/generictarget.cpp
+++ b/src/plugins/genericprojectmanager/generictarget.cpp
@@ -137,7 +137,7 @@ GenericTarget *GenericTargetFactory::create(ProjectExplorer::Project *parent, co
     bc->setDisplayName("all");
 
     GenericMakeStep *makeStep = new GenericMakeStep(bc);
-    bc->insertStep(ProjectExplorer::Build, 0, makeStep);
+    bc->insertStep(ProjectExplorer::BuildStep::Build, 0, makeStep);
 
     makeStep->setBuildTarget("all", /* on = */ true);
 
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index 167a452d930af4d2da3ef037b0bc84ed82fd271c..7f21f251e0f6a0de99784d3cf30c468e1ebc8407 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -41,7 +41,7 @@ using namespace ProjectExplorer;
 
 namespace {
 
-IBuildStepFactory *findCloneFactory(BuildConfiguration *parent, StepType type, BuildStep *source)
+IBuildStepFactory *findCloneFactory(BuildConfiguration *parent, BuildStep::Type type, BuildStep *source)
 {
     QList<IBuildStepFactory *> factories = ExtensionSystem::PluginManager::instance()->getObjects<IBuildStepFactory>();
     foreach(IBuildStepFactory *factory, factories)
@@ -50,7 +50,7 @@ IBuildStepFactory *findCloneFactory(BuildConfiguration *parent, StepType type, B
     return 0;
 }
 
-IBuildStepFactory *findRestoreFactory(BuildConfiguration *parent, StepType type, const QVariantMap &map)
+IBuildStepFactory *findRestoreFactory(BuildConfiguration *parent, BuildStep::Type type, const QVariantMap &map)
 {
     QList<IBuildStepFactory *> factories = ExtensionSystem::PluginManager::instance()->getObjects<IBuildStepFactory>();
     foreach(IBuildStepFactory *factory, factories)
@@ -87,7 +87,7 @@ BuildConfiguration::BuildConfiguration(Target *target, BuildConfiguration *sourc
 
 BuildConfiguration::~BuildConfiguration()
 {
-    for (int i = 0; i < LastStepType; ++i) {
+    for (int i = 0; i < BuildStep::LastStepType; ++i) {
         qDeleteAll(m_steps[i]);
     }
 }
@@ -95,12 +95,12 @@ BuildConfiguration::~BuildConfiguration()
 QVariantMap BuildConfiguration::toMap() const
 {
     QVariantMap map(ProjectConfiguration::toMap());
-    map.insert(QLatin1String(BUILD_STEPS_COUNT_KEY), m_steps[Build].count());
-    for (int i = 0; i < m_steps[Build].count(); ++i)
-        map.insert(QString::fromLatin1(BUILD_STEPS_PREFIX) + QString::number(i), m_steps[Build].at(i)->toMap());
-    map.insert(QLatin1String(CLEAN_STEPS_COUNT_KEY), m_steps[Clean].count());
-    for (int i = 0; i < m_steps[Clean].count(); ++i)
-        map.insert(QString::fromLatin1(CLEAN_STEPS_PREFIX) + QString::number(i), m_steps[Clean].at(i)->toMap());
+    map.insert(QLatin1String(BUILD_STEPS_COUNT_KEY), m_steps[BuildStep::Build].count());
+    for (int i = 0; i < m_steps[BuildStep::Build].count(); ++i)
+        map.insert(QString::fromLatin1(BUILD_STEPS_PREFIX) + QString::number(i), m_steps[BuildStep::Build].at(i)->toMap());
+    map.insert(QLatin1String(CLEAN_STEPS_COUNT_KEY), m_steps[BuildStep::Clean].count());
+    for (int i = 0; i < m_steps[BuildStep::Clean].count(); ++i)
+        map.insert(QString::fromLatin1(CLEAN_STEPS_PREFIX) + QString::number(i), m_steps[BuildStep::Clean].at(i)->toMap());
     map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), m_clearSystemEnvironment);
     map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(m_userEnvironmentChanges));
 
@@ -110,12 +110,12 @@ QVariantMap BuildConfiguration::toMap() const
 void BuildConfiguration::cloneSteps(BuildConfiguration *source)
 {
     Q_ASSERT(source);
-    for (int i = 0; i < LastStepType; ++i) {
-        foreach (BuildStep *originalbs, source->steps(StepType(i))) {
-            IBuildStepFactory *factory(findCloneFactory(this, StepType(i), originalbs));
+    for (int i = 0; i < BuildStep::LastStepType; ++i) {
+        foreach (BuildStep *originalbs, source->steps(BuildStep::Type(i))) {
+            IBuildStepFactory *factory(findCloneFactory(this, BuildStep::Type(i), originalbs));
             if (!factory)
                 continue;
-            BuildStep *clonebs(factory->clone(this, StepType(i), originalbs));
+            BuildStep *clonebs(factory->clone(this, BuildStep::Type(i), originalbs));
             if (clonebs)
                 m_steps[i].append(clonebs);
         }
@@ -136,17 +136,17 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
             qWarning() << "No buildstep data found (continuing).";
             continue;
         }
-        IBuildStepFactory *factory(findRestoreFactory(this, Build, bsData));
+        IBuildStepFactory *factory(findRestoreFactory(this, BuildStep::Build, bsData));
         if (!factory) {
             qWarning() << "No factory for buildstep found (continuing).";
             continue;
         }
-        BuildStep *bs(factory->restore(this, Build, bsData));
+        BuildStep *bs(factory->restore(this, BuildStep::Build, bsData));
         if (!bs) {
             qWarning() << "Restoration of buildstep failed (continuing).";
             continue;
         }
-        insertStep(Build, m_steps[Build].count(), bs);
+        insertStep(BuildStep::Build, m_steps[BuildStep::Build].count(), bs);
     }
 
     maxI = map.value(QLatin1String(CLEAN_STEPS_COUNT_KEY), 0).toInt();
@@ -158,17 +158,17 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
             qWarning() << "No cleanstep data found for (continuing).";
             continue;
         }
-        IBuildStepFactory *factory(findRestoreFactory(this, Clean, bsData));
+        IBuildStepFactory *factory(findRestoreFactory(this, BuildStep::Clean, bsData));
         if (!factory) {
             qWarning() << "No factory for cleanstep found (continuing).";
             continue;
         }
-        BuildStep *bs(factory->restore(this, Clean, bsData));
+        BuildStep *bs(factory->restore(this, BuildStep::Clean, bsData));
         if (!bs) {
             qWarning() << "Restoration of cleanstep failed (continuing).";
             continue;
         }
-        insertStep(Clean, m_steps[Clean].count(), bs);
+        insertStep(BuildStep::Clean, m_steps[BuildStep::Clean].count(), bs);
     }
 
     m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool();
@@ -177,21 +177,21 @@ bool BuildConfiguration::fromMap(const QVariantMap &map)
     return true;
 }
 
-QList<BuildStep *> BuildConfiguration::steps(StepType type) const
+QList<BuildStep *> BuildConfiguration::steps(BuildStep::Type type) const
 {
-    Q_ASSERT(type >= 0 && type < LastStepType);
+    Q_ASSERT(type >= 0 && type < BuildStep::LastStepType);
     return m_steps[type];
 }
 
-void BuildConfiguration::insertStep(StepType type, int position, BuildStep *step)
+void BuildConfiguration::insertStep(BuildStep::Type type, int position, BuildStep *step)
 {
-    Q_ASSERT(type >= 0 && type < LastStepType);
+    Q_ASSERT(type >= 0 && type < BuildStep::LastStepType);
     m_steps[type].insert(position, step);
 }
 
-bool BuildConfiguration::removeStep(StepType type, int position)
+bool BuildConfiguration::removeStep(BuildStep::Type type, int position)
 {
-    Q_ASSERT(type >= 0 && type < LastStepType);
+    Q_ASSERT(type >= 0 && type < BuildStep::LastStepType);
 
     ProjectExplorer::BuildManager *bm =
             ProjectExplorer::ProjectExplorerPlugin::instance()->buildManager();
@@ -203,9 +203,9 @@ bool BuildConfiguration::removeStep(StepType type, int position)
     return true;
 }
 
-void BuildConfiguration::moveStepUp(StepType type, int position)
+void BuildConfiguration::moveStepUp(BuildStep::Type type, int position)
 {
-    Q_ASSERT(type >= 0 && type < LastStepType);
+    Q_ASSERT(type >= 0 && type < BuildStep::LastStepType);
     if (position <= 0 || m_steps[type].size() <= 1)
         return;
     m_steps[type].swap(position - 1, position);
diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h
index 65a0064418a4de7ec85a3d8c8b0316614afed1a5..e2c938656dc347cffcfa6471d249e383509cf657 100644
--- a/src/plugins/projectexplorer/buildconfiguration.h
+++ b/src/plugins/projectexplorer/buildconfiguration.h
@@ -53,10 +53,10 @@ public:
     // ctors are protected
     virtual ~BuildConfiguration();
 
-    QList<BuildStep *> steps(StepType type) const;
-    void insertStep(StepType type, int position, BuildStep *step);
-    bool removeStep(StepType type, int position);
-    void moveStepUp(StepType type, int position);
+    QList<BuildStep *> steps(BuildStep::Type type) const;
+    void insertStep(BuildStep::Type type, int position, BuildStep *step);
+    bool removeStep(BuildStep::Type type, int position);
+    void moveStepUp(BuildStep::Type type, int position);
 
     virtual QString buildDirectory() const = 0;
 
@@ -85,7 +85,7 @@ protected:
     virtual bool fromMap(const QVariantMap &map);
 
 private:
-    QList<BuildStep *> m_steps[LastStepType];
+    QList<BuildStep *> m_steps[BuildStep::LastStepType];
     Target *m_target;
 
     bool m_clearSystemEnvironment;
diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp
index 45b5c0645b122aba596d58573423f7b2cab22c23..257f99a07e59b7c44130ec9890e7442cee4f3a06 100644
--- a/src/plugins/projectexplorer/buildmanager.cpp
+++ b/src/plugins/projectexplorer/buildmanager.cpp
@@ -414,7 +414,7 @@ void BuildManager::buildProjects(const QList<BuildConfiguration *> &configuratio
 {
     QList<BuildStep *> steps;
     foreach(BuildConfiguration *bc, configurations)
-        steps.append(bc->steps(Build));
+        steps.append(bc->steps(BuildStep::Build));
 
     bool success = buildQueueAppend(steps);
     if (!success) {
@@ -431,7 +431,7 @@ void BuildManager::cleanProjects(const QList<BuildConfiguration *> &configuratio
 {
     QList<BuildStep *> steps;
     foreach(BuildConfiguration *bc, configurations)
-        steps.append(bc->steps(Clean));
+        steps.append(bc->steps(BuildStep::Clean));
 
     bool success = buildQueueAppend(steps);
     if (!success) {
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index df275cc40e5d1f2d8baf6b85080cd8198ab3bc42..5d0b8e52268f2d533e7ae8cb49a7717dff700875 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -249,8 +249,8 @@ void BuildSettingsWidget::updateBuildSettings()
     BuildConfigWidget *generalConfigWidget = m_target->project()->createConfigWidget();
     addSubWidget(generalConfigWidget->displayName(), generalConfigWidget);
 
-    addSubWidget(tr("Build Steps"), new BuildStepsPage(m_target, Build));
-    addSubWidget(tr("Clean Steps"), new BuildStepsPage(m_target, Clean));
+    addSubWidget(tr("Build Steps"), new BuildStepsPage(m_target, BuildStep::Build));
+    addSubWidget(tr("Clean Steps"), new BuildStepsPage(m_target, BuildStep::Clean));
 
     QList<BuildConfigWidget *> subConfigWidgets = m_target->project()->subConfigWidgets();
     foreach (BuildConfigWidget *subConfigWidget, subConfigWidgets)
diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h
index 897835a88aef2949d02feacf9e804e0a94373a64..571710828ab84e8fefc7619bd5529bc8a11027e9 100644
--- a/src/plugins/projectexplorer/buildstep.h
+++ b/src/plugins/projectexplorer/buildstep.h
@@ -39,10 +39,6 @@
 
 namespace ProjectExplorer {
 
-enum StepType { Build = 0,
-                Clean = 1,
-                LastStepType = 2};
-
 class BuildConfiguration;
 
 /*
@@ -76,6 +72,13 @@ protected:
     BuildStep(BuildConfiguration *bc, BuildStep *bs);
 
 public:
+    enum Type {
+        Build = 0,
+        Clean,
+        LastStepType
+    };
+    Q_ENUMS(Type)
+
     virtual ~BuildStep();
 
     // This function is run in the gui thread,
@@ -122,17 +125,17 @@ public:
     virtual ~IBuildStepFactory();
 
     // used to show the list of possible additons to a target, returns a list of types
-    virtual QStringList availableCreationIds(BuildConfiguration *parent, StepType type) const = 0;
+    virtual QStringList availableCreationIds(BuildConfiguration *parent, BuildStep::Type type) const = 0;
     // used to translate the types to names to display to the user
     virtual QString displayNameForId(const QString &id) const = 0;
 
-    virtual bool canCreate(BuildConfiguration *parent, StepType type, const QString &id) const = 0;
-    virtual BuildStep *create(BuildConfiguration *parent, StepType type, const QString &id) = 0;
+    virtual bool canCreate(BuildConfiguration *parent, BuildStep::Type type, const QString &id) const = 0;
+    virtual BuildStep *create(BuildConfiguration *parent, BuildStep::Type type, const QString &id) = 0;
     // used to recreate the runConfigurations when restoring settings
-    virtual bool canRestore(BuildConfiguration *parent, StepType type, const QVariantMap &map) const = 0;
-    virtual BuildStep *restore(BuildConfiguration *parent, StepType type, const QVariantMap &map) = 0;
-    virtual bool canClone(BuildConfiguration *parent, StepType type, BuildStep *product) const = 0;
-    virtual BuildStep *clone(BuildConfiguration *parent, StepType type, BuildStep *product) = 0;
+    virtual bool canRestore(BuildConfiguration *parent, BuildStep::Type type, const QVariantMap &map) const = 0;
+    virtual BuildStep *restore(BuildConfiguration *parent, BuildStep::Type type, const QVariantMap &map) = 0;
+    virtual bool canClone(BuildConfiguration *parent, BuildStep::Type type, BuildStep *product) const = 0;
+    virtual BuildStep *clone(BuildConfiguration *parent, BuildStep::Type type, BuildStep *product) = 0;
 };
 
 class PROJECTEXPLORER_EXPORT BuildConfigWidget
diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp
index ef46c810da51d88e40574ffc5462c027b52a778e..54b9be9563b922c595dfc3dffa2de11adcabfb12 100644
--- a/src/plugins/projectexplorer/buildstepspage.cpp
+++ b/src/plugins/projectexplorer/buildstepspage.cpp
@@ -50,7 +50,7 @@
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
 
-BuildStepsPage::BuildStepsPage(Target *target, StepType type) :
+BuildStepsPage::BuildStepsPage(Target *target, BuildStep::Type type) :
     BuildConfigWidget(),
     m_type(type),
     m_addButton(0)
@@ -83,7 +83,7 @@ void BuildStepsPage::updateSummary()
 
 QString BuildStepsPage::displayName() const
 {
-    if (m_type == Build)
+    if (m_type == BuildStep::Build)
         return tr("Build Steps");
     else
         return tr("Clean Steps");
@@ -295,7 +295,7 @@ void BuildStepsPage::setupUi()
     QHBoxLayout *hboxLayout = new QHBoxLayout();
     hboxLayout->setContentsMargins(0, 4, 0, 0);
     m_addButton = new QPushButton(this);
-    m_addButton->setText(m_type == Clean ? tr("Add Clean Step") :  tr("Add Build Step"));
+    m_addButton->setText(m_type == BuildStep::Clean ? tr("Add Clean Step") :  tr("Add Build Step"));
     m_addButton->setMenu(new QMenu(this));
     hboxLayout->addWidget(m_addButton);
 
diff --git a/src/plugins/projectexplorer/buildstepspage.h b/src/plugins/projectexplorer/buildstepspage.h
index 689eb5d4906534c8f7e91513f750e21b5e2ba745..58be605c0a6a6267102144b796ad03db5e62491b 100644
--- a/src/plugins/projectexplorer/buildstepspage.h
+++ b/src/plugins/projectexplorer/buildstepspage.h
@@ -67,7 +67,7 @@ class BuildStepsPage : public BuildConfigWidget
     Q_OBJECT
 
 public:
-    explicit BuildStepsPage(Target *target, StepType type);
+    explicit BuildStepsPage(Target *target, BuildStep::Type type);
     virtual ~BuildStepsPage();
 
     QString displayName() const;
@@ -88,7 +88,7 @@ private:
 
     BuildConfiguration * m_configuration;
     QHash<QAction *, QPair<QString, ProjectExplorer::IBuildStepFactory *> > m_addBuildStepHash;
-    StepType m_type;
+    BuildStep::Type m_type;
 
     QList<BuildStepsWidgetStruct> m_buildSteps;
 
diff --git a/src/plugins/projectexplorer/processstep.cpp b/src/plugins/projectexplorer/processstep.cpp
index 7ea0c27f651054597273d7ca15ad1fd321797df1..fbb9ee8e3516a5ff99da026dafd9e94d90a5f652 100644
--- a/src/plugins/projectexplorer/processstep.cpp
+++ b/src/plugins/projectexplorer/processstep.cpp
@@ -185,39 +185,39 @@ ProcessStepFactory::~ProcessStepFactory()
 {
 }
 
-bool ProcessStepFactory::canCreate(BuildConfiguration *parent, StepType type, const QString &id) const
+bool ProcessStepFactory::canCreate(BuildConfiguration *parent, BuildStep::Type type, const QString &id) const
 {
     Q_UNUSED(parent);
     Q_UNUSED(type);
     return id == QLatin1String(PROCESS_STEP_ID);
 }
 
-BuildStep *ProcessStepFactory::create(BuildConfiguration *parent, StepType type, const QString &id)
+BuildStep *ProcessStepFactory::create(BuildConfiguration *parent, BuildStep::Type type, const QString &id)
 {
     if (!canCreate(parent, type, id))
         return 0;
     return new ProcessStep(parent);
 }
 
-bool ProcessStepFactory::canClone(BuildConfiguration *parent, StepType type, BuildStep *bs) const
+bool ProcessStepFactory::canClone(BuildConfiguration *parent, BuildStep::Type type, BuildStep *bs) const
 {
     return canCreate(parent, type, bs->id());
 }
 
-BuildStep *ProcessStepFactory::clone(BuildConfiguration *parent, StepType type, BuildStep *bs)
+BuildStep *ProcessStepFactory::clone(BuildConfiguration *parent, BuildStep::Type type, BuildStep *bs)
 {
     if (!canClone(parent, type, bs))
         return 0;
     return new ProcessStep(parent, static_cast<ProcessStep *>(bs));
 }
 
-bool ProcessStepFactory::canRestore(BuildConfiguration *parent, StepType type, const QVariantMap &map) const
+bool ProcessStepFactory::canRestore(BuildConfiguration *parent, BuildStep::Type type, const QVariantMap &map) const
 {
     QString id(ProjectExplorer::idFromMap(map));
     return canCreate(parent, type, id);
 }
 
-BuildStep *ProcessStepFactory::restore(BuildConfiguration *parent, StepType type, const QVariantMap &map)
+BuildStep *ProcessStepFactory::restore(BuildConfiguration *parent, BuildStep::Type type, const QVariantMap &map)
 {
     if (!canRestore(parent, type, map))
         return 0;
@@ -229,7 +229,7 @@ BuildStep *ProcessStepFactory::restore(BuildConfiguration *parent, StepType type
     return 0;
 }
 
-QStringList ProcessStepFactory::availableCreationIds(BuildConfiguration *parent, StepType type) const
+QStringList ProcessStepFactory::availableCreationIds(BuildConfiguration *parent, BuildStep::Type type) const
 {
     Q_UNUSED(parent);
     Q_UNUSED(type);
diff --git a/src/plugins/projectexplorer/processstep.h b/src/plugins/projectexplorer/processstep.h
index 88c4e1bb6b9195972745f591b36b64f6a35918e8..62358cbf80b222d4e9b971550a666593e6e2c1bb 100644
--- a/src/plugins/projectexplorer/processstep.h
+++ b/src/plugins/projectexplorer/processstep.h
@@ -46,15 +46,15 @@ public:
     ProcessStepFactory();
     ~ProcessStepFactory();
 
-    virtual QStringList availableCreationIds(BuildConfiguration *parent, StepType type) const;
+    virtual QStringList availableCreationIds(BuildConfiguration *parent, BuildStep::Type type) const;
     virtual QString displayNameForId(const QString &id) const;
 
-    virtual bool canCreate(BuildConfiguration *parent, StepType type, const QString &id) const;
-    virtual BuildStep *create(BuildConfiguration *parent, StepType type, const QString &id);
-    virtual bool canRestore(BuildConfiguration *parent, StepType type, const QVariantMap &map) const;
-    virtual BuildStep *restore(BuildConfiguration *parent, StepType type, const QVariantMap &map);
-    virtual bool canClone(BuildConfiguration *parent, StepType type, BuildStep *product) const;
-    virtual BuildStep *clone(BuildConfiguration *parent, StepType type, BuildStep *product);
+    virtual bool canCreate(BuildConfiguration *parent, BuildStep::Type type, const QString &id) const;
+    virtual BuildStep *create(BuildConfiguration *parent, BuildStep::Type type, const QString &id);
+    virtual bool canRestore(BuildConfiguration *parent, BuildStep::Type type, const QVariantMap &map) const;
+    virtual BuildStep *restore(BuildConfiguration *parent, BuildStep::Type type, const QVariantMap &map);
+    virtual bool canClone(BuildConfiguration *parent, BuildStep::Type type, BuildStep *product) const;
+    virtual BuildStep *clone(BuildConfiguration *parent, BuildStep::Type type, BuildStep *product);
 };
 
 class ProcessStep : public ProjectExplorer::AbstractProcessStep
diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp
index 02eaf9832ff666f7ba107b3603bb7b66c098a4c9..ec9528bd2364392e1cd62b349cd50e2a82884b89 100644
--- a/src/plugins/qt4projectmanager/makestep.cpp
+++ b/src/plugins/qt4projectmanager/makestep.cpp
@@ -356,7 +356,7 @@ MakeStepFactory::~MakeStepFactory()
 {
 }
 
-bool MakeStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const
+bool MakeStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id) const
 {
     Q_UNUSED(type)
     if (!qobject_cast<Qt4BuildConfiguration *>(parent))
@@ -364,32 +364,32 @@ bool MakeStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent, Pro
     return (id == QLatin1String(MAKESTEP_BS_ID));
 }
 
-ProjectExplorer::BuildStep *MakeStepFactory::create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id)
+ProjectExplorer::BuildStep *MakeStepFactory::create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id)
 {
     if (!canCreate(parent, type, id))
         return 0;
     return new MakeStep(parent);
 }
 
-bool MakeStepFactory::canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source) const
+bool MakeStepFactory::canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *source) const
 {
     return canCreate(parent, type, source->id());
 }
 
-ProjectExplorer::BuildStep *MakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source)
+ProjectExplorer::BuildStep *MakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *source)
 {
     if (!canClone(parent, type, source))
         return 0;
     return new MakeStep(parent, static_cast<MakeStep *>(source));
 }
 
-bool MakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const
+bool MakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map) const
 {
     QString id(ProjectExplorer::idFromMap(map));
     return canCreate(parent, type, id);
 }
 
-ProjectExplorer::BuildStep *MakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map)
+ProjectExplorer::BuildStep *MakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map)
 {
     if (!canRestore(parent, type, map))
         return 0;
@@ -400,7 +400,7 @@ ProjectExplorer::BuildStep *MakeStepFactory::restore(ProjectExplorer::BuildConfi
     return 0;
 }
 
-QStringList MakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const
+QStringList MakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type) const
 {
     Q_UNUSED(type)
     if (qobject_cast<Qt4BuildConfiguration *>(parent))
diff --git a/src/plugins/qt4projectmanager/makestep.h b/src/plugins/qt4projectmanager/makestep.h
index 8fe405f078aa4c4b4028868a1c9aaa8dc970132d..cc6eed8ea2f8fed0f36939950747bb06f3bdb9ce 100644
--- a/src/plugins/qt4projectmanager/makestep.h
+++ b/src/plugins/qt4projectmanager/makestep.h
@@ -57,14 +57,14 @@ public:
     explicit MakeStepFactory(QObject *parent = 0);
     virtual ~MakeStepFactory();
 
-    bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const;
-    ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id);
-    bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source) const;
-    ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source);
-    bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const;
-    ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map);
-
-    QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const;
+    bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id) const;
+    ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id);
+    bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *source) const;
+    ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *source);
+    bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map) const;
+    ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map);
+
+    QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type) const;
     QString displayNameForId(const QString &id) const;
 };
 } //namespace Internal
diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 12cbf8ab28b3dc4cb9fb45144bc1f4d4afd3d172..c95e1125d3853cbfe3436aaf702c749fad4c4d71 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -427,16 +427,16 @@ QMakeStepFactory::~QMakeStepFactory()
 {
 }
 
-bool QMakeStepFactory::canCreate(BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const
+bool QMakeStepFactory::canCreate(BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id) const
 {
-    if (type != ProjectExplorer::Build)
+    if (type != ProjectExplorer::BuildStep::Build)
         return false;
     if (!qobject_cast<Qt4BuildConfiguration *>(parent))
         return false;
     return (id == QLatin1String(QMAKE_BS_ID));
 }
 
-ProjectExplorer::BuildStep *QMakeStepFactory::create(BuildConfiguration *parent, ProjectExplorer::StepType type,const QString &id)
+ProjectExplorer::BuildStep *QMakeStepFactory::create(BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type,const QString &id)
 {
     if (!canCreate(parent, type, id))
         return 0;
@@ -445,12 +445,12 @@ ProjectExplorer::BuildStep *QMakeStepFactory::create(BuildConfiguration *parent,
     return new QMakeStep(bc);
 }
 
-bool QMakeStepFactory::canClone(BuildConfiguration *parent, ProjectExplorer::StepType type, BuildStep *source) const
+bool QMakeStepFactory::canClone(BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, BuildStep *source) const
 {
     return canCreate(parent, type, source->id());
 }
 
-ProjectExplorer::BuildStep *QMakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source)
+ProjectExplorer::BuildStep *QMakeStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *source)
 {
     if (!canClone(parent, type, source))
         return 0;
@@ -459,13 +459,13 @@ ProjectExplorer::BuildStep *QMakeStepFactory::clone(ProjectExplorer::BuildConfig
     return new QMakeStep(bc, qobject_cast<QMakeStep *>(source));
 }
 
-bool QMakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const
+bool QMakeStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map) const
 {
     QString id(ProjectExplorer::idFromMap(map));
     return canCreate(parent, type, id);
 }
 
-ProjectExplorer::BuildStep *QMakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map)
+ProjectExplorer::BuildStep *QMakeStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map)
 {
     if (!canRestore(parent, type, map))
         return 0;
@@ -478,9 +478,9 @@ ProjectExplorer::BuildStep *QMakeStepFactory::restore(ProjectExplorer::BuildConf
     return 0;
 }
 
-QStringList QMakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const
+QStringList QMakeStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type) const
 {
-    if (type == Build)
+    if (type == ProjectExplorer::BuildStep::Build)
         if (Qt4BuildConfiguration *bc = qobject_cast<Qt4BuildConfiguration *>(parent))
             if (!bc->qmakeStep())
                 return QStringList() << QLatin1String(QMAKE_BS_ID);
diff --git a/src/plugins/qt4projectmanager/qmakestep.h b/src/plugins/qt4projectmanager/qmakestep.h
index bc0de0f4b9a1a5abf8ef9a7cd6ccea187e536ac8..2d262dbebca99d3b99206d1d5b2fe040d3590a2f 100644
--- a/src/plugins/qt4projectmanager/qmakestep.h
+++ b/src/plugins/qt4projectmanager/qmakestep.h
@@ -55,13 +55,13 @@ class QMakeStepFactory : public ProjectExplorer::IBuildStepFactory
 public:
     explicit QMakeStepFactory(QObject *parent = 0);
     virtual ~QMakeStepFactory();
-    bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,const QString & id) const;
-    ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,const QString &id);
-    bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,ProjectExplorer::BuildStep *bs) const;
-    ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,ProjectExplorer::BuildStep *bs);
-    bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,const QVariantMap &map) const;
-    ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type,const QVariantMap &map);
-    QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc, ProjectExplorer::StepType type) const;
+    bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type,const QString & id) const;
+    ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type,const QString &id);
+    bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type,ProjectExplorer::BuildStep *bs) const;
+    ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type,ProjectExplorer::BuildStep *bs);
+    bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type,const QVariantMap &map) const;
+    ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type,const QVariantMap &map);
+    QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *bc, ProjectExplorer::BuildStep::Type type) const;
     QString displayNameForId(const QString &id) const;
 };
 
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.cpp
index 9969d79711d7ffe149faaa9954e51820e9f91c08..38c7df3cb7535f0cf8fc451234403c1ebead8194 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.cpp
@@ -48,7 +48,6 @@
 #include <qt4projectmanagerconstants.h>
 
 using ProjectExplorer::BuildConfiguration;
-using ProjectExplorer::StepType;
 using ProjectExplorer::BuildStep;
 
 namespace Qt4ProjectManager {
@@ -61,7 +60,7 @@ MaemoPackageCreationFactory::MaemoPackageCreationFactory(QObject *parent)
 }
 
 QStringList MaemoPackageCreationFactory::availableCreationIds(BuildConfiguration *,
-                StepType) const
+                                                              BuildStep::Type) const
 {
     return QStringList();
 }
@@ -72,26 +71,28 @@ QString MaemoPackageCreationFactory::displayNameForId(const QString &) const
 }
 
 bool MaemoPackageCreationFactory::canCreate(BuildConfiguration *,
-         StepType, const QString &) const
+                                            BuildStep::Type, const QString &) const
 {
     return false;
 }
 
 BuildStep *MaemoPackageCreationFactory::create(BuildConfiguration *,
-               StepType, const QString &)
+                                               BuildStep::Type, const QString &)
 {
     Q_ASSERT(false);
     return 0;
 }
 
 bool MaemoPackageCreationFactory::canRestore(BuildConfiguration *parent,
-         StepType type, const QVariantMap &map) const
+                                             BuildStep::Type type,
+                                             const QVariantMap &map) const
 {
     return canCreateInternally(parent, type, ProjectExplorer::idFromMap(map));
 }
 
 BuildStep *MaemoPackageCreationFactory::restore(BuildConfiguration *parent,
-               StepType type, const QVariantMap &map)
+                                                BuildStep::Type type,
+                                                const QVariantMap &map)
 {
     Q_ASSERT(canRestore(parent, type, map));
     MaemoPackageCreationStep * const step
@@ -104,22 +105,22 @@ BuildStep *MaemoPackageCreationFactory::restore(BuildConfiguration *parent,
 }
 
 bool MaemoPackageCreationFactory::canClone(BuildConfiguration *parent,
-         StepType type, BuildStep *product) const
+                                           BuildStep::Type type, BuildStep *product) const
 {
     return canCreateInternally(parent, type, product->id());
 }
 
 BuildStep *MaemoPackageCreationFactory::clone(BuildConfiguration *parent,
-               StepType type, BuildStep *product)
+                                              BuildStep::Type type, BuildStep *product)
 {
     Q_ASSERT(canClone(parent, type, product));
     return new MaemoPackageCreationStep(parent, static_cast<MaemoPackageCreationStep *>(product));
 }
 
 bool MaemoPackageCreationFactory::canCreateInternally(BuildConfiguration *parent,
-         StepType type, const QString &id) const
+                                                      BuildStep::Type type, const QString &id) const
 {
-    return type == ProjectExplorer::Build
+    return type == ProjectExplorer::BuildStep::Build
         && id == MaemoPackageCreationStep::CreatePackageId
         && parent->target()->id() == Constants::MAEMO_DEVICE_TARGET_ID;
 }
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.h
index da80af2fae5bcafea88725ee812bff840a169543..128c43d5a317a4e3010cd6a50215db5c41deb78e 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.h
@@ -53,34 +53,34 @@ public:
     MaemoPackageCreationFactory(QObject *parent);
 
     virtual QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *parent,
-                                             ProjectExplorer::StepType type) const;
+                                             ProjectExplorer::BuildStep::Type type) const;
     virtual QString displayNameForId(const QString &id) const;
 
     virtual bool canCreate(ProjectExplorer::BuildConfiguration *parent,
-                           ProjectExplorer::StepType type,
+                           ProjectExplorer::BuildStep::Type type,
                            const QString &id) const;
     virtual ProjectExplorer::BuildStep *
             create(ProjectExplorer::BuildConfiguration *parent,
-                   ProjectExplorer::StepType type, const QString &id);
+                   ProjectExplorer::BuildStep::Type type, const QString &id);
 
     virtual bool canRestore(ProjectExplorer::BuildConfiguration *parent,
-                            ProjectExplorer::StepType type,
+                            ProjectExplorer::BuildStep::Type type,
                             const QVariantMap &map) const;
     virtual ProjectExplorer::BuildStep *
             restore(ProjectExplorer::BuildConfiguration *parent,
-                    ProjectExplorer::StepType type, const QVariantMap &map);
+                    ProjectExplorer::BuildStep::Type type, const QVariantMap &map);
 
     virtual bool canClone(ProjectExplorer::BuildConfiguration *parent,
-                          ProjectExplorer::StepType type,
+                          ProjectExplorer::BuildStep::Type type,
                           ProjectExplorer::BuildStep *product) const;
     virtual ProjectExplorer::BuildStep *
             clone(ProjectExplorer::BuildConfiguration *parent,
-                  ProjectExplorer::StepType type,
+                  ProjectExplorer::BuildStep::Type type,
                   ProjectExplorer::BuildStep *product);
 
 private:
     bool canCreateInternally(ProjectExplorer::BuildConfiguration *parent,
-                             ProjectExplorer::StepType type,
+                             ProjectExplorer::BuildStep::Type type,
                              const QString &id) const;
 };
 
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
index 1b93778e9b0c8f55f9a513f599329b08c0f22b05..297efedea31973ae5ee41886eb386881ffecc5e9 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
@@ -228,7 +228,7 @@ const QString MaemoRunConfiguration::gdbCmd() const
 const MaemoPackageCreationStep *MaemoRunConfiguration::packageStep() const
 {
     const QList<ProjectExplorer::BuildStep *> &buildSteps
-        = activeQt4BuildConfiguration()->steps(ProjectExplorer::Build);
+        = activeQt4BuildConfiguration()->steps(ProjectExplorer::BuildStep::Build);
     for (int i = buildSteps.count() - 1; i >= 0; --i) {
         const MaemoPackageCreationStep * const pStep
             = qobject_cast<MaemoPackageCreationStep *>(buildSteps.at(i));
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
index bd88b653b3488e5c7e8f3b54e699b774fb5425e1..095376112abc00e7d251f5f042cd0d400c7c31a2 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
@@ -183,41 +183,41 @@ S60CreatePackageStepFactory::~S60CreatePackageStepFactory()
 {
 }
 
-bool S60CreatePackageStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const
+bool S60CreatePackageStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id) const
 {
-    if (type != ProjectExplorer::Build)
+    if (type != ProjectExplorer::BuildStep::Build)
         return false;
     if (parent->target()->id() != Constants::S60_DEVICE_TARGET_ID)
         return false;
     return (id == QLatin1String(SIGN_BS_ID));
 }
 
-ProjectExplorer::BuildStep *S60CreatePackageStepFactory::create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id)
+ProjectExplorer::BuildStep *S60CreatePackageStepFactory::create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id)
 {
     if (!canCreate(parent, type, id))
         return 0;
     return new S60CreatePackageStep(parent);
 }
 
-bool S60CreatePackageStepFactory::canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source) const
+bool S60CreatePackageStepFactory::canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *source) const
 {
     return canCreate(parent, type, source->id());
 }
 
-ProjectExplorer::BuildStep *S60CreatePackageStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *source)
+ProjectExplorer::BuildStep *S60CreatePackageStepFactory::clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *source)
 {
     if (!canClone(parent, type, source))
         return 0;
     return new S60CreatePackageStep(parent, static_cast<S60CreatePackageStep *>(source));
 }
 
-bool S60CreatePackageStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const
+bool S60CreatePackageStepFactory::canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map) const
 {
     QString id(ProjectExplorer::idFromMap(map));
     return canCreate(parent, type, id);
 }
 
-ProjectExplorer::BuildStep *S60CreatePackageStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map)
+ProjectExplorer::BuildStep *S60CreatePackageStepFactory::restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map)
 {
     if (!canRestore(parent, type, map))
         return 0;
@@ -228,9 +228,9 @@ ProjectExplorer::BuildStep *S60CreatePackageStepFactory::restore(ProjectExplorer
     return 0;
 }
 
-QStringList S60CreatePackageStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const
+QStringList S60CreatePackageStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type) const
 {
-    if (type != ProjectExplorer::Build)
+    if (type != ProjectExplorer::BuildStep::Build)
         return QStringList();
     if (parent->target()->id() == Constants::S60_DEVICE_TARGET_ID)
         return QStringList() << QLatin1String(SIGN_BS_ID);
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h
index e1982b44d726e56f88430142061b413eb4180d40..fd74500b9b60550886cd74379df2823b0d934e9e 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h
@@ -46,17 +46,17 @@ public:
     ~S60CreatePackageStepFactory();
 
     // used to show the list of possible additons to a target, returns a list of types
-    QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type) const;
+    QStringList availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type) const;
     // used to translate the types to names to display to the user
     QString displayNameForId(const QString &id) const;
 
-    bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id) const;
-    ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QString &id);
+    bool canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id) const;
+    ProjectExplorer::BuildStep *create(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id);
     // used to recreate the runConfigurations when restoring settings
-    bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map) const;
-    ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, const QVariantMap &map);
-    bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *product) const;
-    ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::StepType type, ProjectExplorer::BuildStep *product);
+    bool canRestore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map) const;
+    ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QVariantMap &map);
+    bool canClone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *product) const;
+    ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, ProjectExplorer::BuildStep *product);
 };
 
 class S60CreatePackageStep : public MakeStep {
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
index 0ceefdc10c0d7a20711d53f7bfde56208e8a6669..c92eab72e1bad17c99d5347814492f5e9ac4640a 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
@@ -369,7 +369,7 @@ bool S60DeviceRunConfiguration::runSmartInstaller() const
 {
     BuildConfiguration *bc = target()->activeBuildConfiguration();
     QTC_ASSERT(bc, return false);
-    QList<BuildStep *> steps = bc->steps(Build);
+    QList<BuildStep *> steps = bc->steps(ProjectExplorer::BuildStep::Build);
     foreach (const BuildStep *step, steps) {
         if (const S60CreatePackageStep *packageStep = qobject_cast<const S60CreatePackageStep *>(step)) {
             return packageStep->createsSmartInstaller();
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index 39bd078a84f997334d41da23eafacb3872003e86..4c014c06d63eb38ddb25a62826bab2b6eb5fcc31 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -398,7 +398,7 @@ void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUser
 QMakeStep *Qt4BuildConfiguration::qmakeStep() const
 {
     QMakeStep *qs = 0;
-    foreach(BuildStep *bs, steps(ProjectExplorer::Build))
+    foreach(BuildStep *bs, steps(ProjectExplorer::BuildStep::Build))
         if ((qs = qobject_cast<QMakeStep *>(bs)) != 0)
             return qs;
     return 0;
@@ -407,7 +407,7 @@ QMakeStep *Qt4BuildConfiguration::qmakeStep() const
 MakeStep *Qt4BuildConfiguration::makeStep() const
 {
     MakeStep *qs = 0;
-    foreach(BuildStep *bs, steps(ProjectExplorer::Build))
+    foreach(BuildStep *bs, steps(ProjectExplorer::BuildStep::Build))
         if ((qs = qobject_cast<MakeStep *>(bs)) != 0)
             return qs;
     return 0;
diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp
index 59b8c1bd9b251bd8be9b6afb55d737c35fb83dd3..990d62111bf9890656fe7e6e6bd3a92409f03b27 100644
--- a/src/plugins/qt4projectmanager/qt4target.cpp
+++ b/src/plugins/qt4projectmanager/qt4target.cpp
@@ -276,22 +276,22 @@ Qt4BuildConfiguration *Qt4Target::addQt4BuildConfiguration(QString displayName,
     bc->setDisplayName(displayName);
 
     QMakeStep *qmakeStep = new QMakeStep(bc);
-    bc->insertStep(ProjectExplorer::Build, 0, qmakeStep);
+    bc->insertStep(ProjectExplorer::BuildStep::Build, 0, qmakeStep);
 
     MakeStep *makeStep = new MakeStep(bc);
-    bc->insertStep(ProjectExplorer::Build, 1, makeStep);
+    bc->insertStep(ProjectExplorer::BuildStep::Build, 1, makeStep);
 
     if (id() == Constants::S60_DEVICE_TARGET_ID) {
         S60CreatePackageStep *packageStep = new S60CreatePackageStep(bc);
-        bc->insertStep(ProjectExplorer::Build, 2, packageStep);
+        bc->insertStep(ProjectExplorer::BuildStep::Build, 2, packageStep);
     } else if (id() == Constants::MAEMO_DEVICE_TARGET_ID) {
-        bc->insertStep(ProjectExplorer::Build, 2, new MaemoPackageCreationStep(bc));
+        bc->insertStep(ProjectExplorer::BuildStep::Build, 2, new MaemoPackageCreationStep(bc));
     }
 
     MakeStep* cleanStep = new MakeStep(bc);
     cleanStep->setClean(true);
     cleanStep->setUserArguments(QStringList() << "clean");
-    bc->insertStep(ProjectExplorer::Clean, 0, cleanStep);
+    bc->insertStep(ProjectExplorer::BuildStep::Clean, 0, cleanStep);
     if (!additionalArguments.isEmpty())
         qmakeStep->setUserArguments(additionalArguments);