diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp index 5cc6fe9988c..a4721ada4e4 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp @@ -27,6 +27,7 @@ #include "qmlproject.h" +#include #include #include #include @@ -39,28 +40,35 @@ namespace QmlProjectManager { QList QmlProjectEnvironmentAspect::possibleBaseEnvironments() const { - return QList() << static_cast(KitEnvironmentBase) - << static_cast(SystemEnvironmentBase); + QList ret; + if (ProjectExplorer::DeviceTypeKitInformation::deviceTypeId(runConfiguration()->target()->kit()) + == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) { + ret << SystemEnvironmentBase; + } + ret << CleanEnvironmentBase; + return ret; } QString QmlProjectEnvironmentAspect::baseEnvironmentDisplayName(int base) const { - if (base == static_cast(SystemEnvironmentBase)) + switch (base) { + case SystemEnvironmentBase: return tr("System Environment"); - if (base == static_cast(KitEnvironmentBase)) - return tr("Kit Environment"); - return QString(); + case CleanEnvironmentBase: + return tr("Clean Environment"); + default: + QTC_CHECK(false); + return QString(); + } } Utils::Environment QmlProjectEnvironmentAspect::baseEnvironment() const { - int base = baseEnvironmentBase(); - Utils::Environment env = Utils::Environment::systemEnvironment(); - if (base == static_cast(KitEnvironmentBase)) - runConfiguration()->target()->kit()->addToEnvironment(env); + Utils::Environment env = baseEnvironmentBase() == SystemEnvironmentBase + ? Utils::Environment::systemEnvironment() + : Utils::Environment(); - QmlProject *project = qobject_cast(runConfiguration()->target()->project()); - if (project) + if (QmlProject *project = qobject_cast(runConfiguration()->target()->project())) env.modify(project->environment()); return env; diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h index 14c460085f6..efa32fdfdb4 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h +++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h @@ -43,7 +43,7 @@ public: private: enum BaseEnvironmentBase { SystemEnvironmentBase = 0, - KitEnvironmentBase + CleanEnvironmentBase, }; };