From f5c044fe48ac3b5cde9b43bf497bc2d42c7d51f6 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Thu, 23 Sep 2010 10:35:23 +0200 Subject: Move ProjectExplorer::Environment to Utils::Environment Reviewed-by: dt --- src/libs/utils/environment.cpp | 443 +++++++++++++++++++++ src/libs/utils/environment.h | 109 +++++ src/libs/utils/utils-lib.pri | 6 +- .../cmakeprojectmanager/cmakeopenprojectwizard.cpp | 15 +- .../cmakeprojectmanager/cmakeopenprojectwizard.h | 12 +- src/plugins/cmakeprojectmanager/cmakeproject.cpp | 4 +- .../cmakeprojectmanager/cmakeprojectmanager.cpp | 10 +- .../cmakeprojectmanager/cmakeprojectmanager.h | 8 +- .../cmakeprojectmanager/cmakerunconfiguration.cpp | 25 +- .../cmakeprojectmanager/cmakerunconfiguration.h | 14 +- src/plugins/cmakeprojectmanager/makestep.cpp | 4 +- src/plugins/debugger/debuggerengine.cpp | 4 +- src/plugins/debugger/debuggerrunner.cpp | 4 +- src/plugins/debugger/debuggerrunner.h | 4 +- src/plugins/debugger/qml/qmlengine.cpp | 2 +- .../genericbuildconfiguration.cpp | 4 +- .../genericbuildconfiguration.h | 2 +- .../genericprojectmanager/genericmakestep.cpp | 6 +- src/plugins/git/gitclient.cpp | 2 - .../projectexplorer/abstractprocessstep.cpp | 2 +- src/plugins/projectexplorer/abstractprocessstep.h | 7 +- .../projectexplorer/applicationrunconfiguration.h | 8 +- src/plugins/projectexplorer/buildconfiguration.cpp | 18 +- src/plugins/projectexplorer/buildconfiguration.h | 13 +- src/plugins/projectexplorer/cesdkhandler.cpp | 5 +- src/plugins/projectexplorer/cesdkhandler.h | 7 +- .../customexecutablerunconfiguration.cpp | 31 +- .../customexecutablerunconfiguration.h | 12 +- src/plugins/projectexplorer/debugginghelper.cpp | 4 +- src/plugins/projectexplorer/debugginghelper.h | 7 +- src/plugins/projectexplorer/deployconfiguration.h | 5 +- src/plugins/projectexplorer/environment.cpp | 443 --------------------- src/plugins/projectexplorer/environment.h | 108 ----- .../projectexplorer/environmenteditmodel.cpp | 54 +-- src/plugins/projectexplorer/environmenteditmodel.h | 13 +- .../projectexplorer/foldernavigationwidget.cpp | 4 +- src/plugins/projectexplorer/processstep.h | 2 +- src/plugins/projectexplorer/projectexplorer.pro | 2 - src/plugins/projectexplorer/target.h | 6 +- src/plugins/projectexplorer/toolchain.cpp | 26 +- src/plugins/projectexplorer/toolchain.h | 20 +- src/plugins/qmljseditor/qmljspreviewrunner.cpp | 4 +- .../qmlprojectmanager/qmlprojectruncontrol.cpp | 6 +- src/plugins/qt4projectmanager/makestep.cpp | 11 +- src/plugins/qt4projectmanager/qmakestep.cpp | 8 +- .../qt-maemo/maemodebugsupport.cpp | 4 +- .../qt-maemo/maemodeviceenvreader.cpp | 2 +- .../qt-maemo/maemodeviceenvreader.h | 6 +- .../qt4projectmanager/qt-maemo/maemoglobal.cpp | 4 +- .../qt4projectmanager/qt-maemo/maemoglobal.h | 5 +- .../qt-maemo/maemorunconfiguration.cpp | 20 +- .../qt-maemo/maemorunconfiguration.h | 21 +- .../qt-maemo/maemorunconfigurationwidget.cpp | 6 +- .../qt-maemo/maemorunconfigurationwidget.h | 9 +- .../qt4projectmanager/qt-maemo/maemotoolchain.cpp | 2 +- .../qt4projectmanager/qt-maemo/maemotoolchain.h | 2 +- .../qt4projectmanager/qt-s60/gccetoolchain.cpp | 6 +- .../qt4projectmanager/qt-s60/gccetoolchain.h | 2 +- .../qt4projectmanager/qt-s60/rvcttoolchain.cpp | 8 +- .../qt4projectmanager/qt-s60/rvcttoolchain.h | 4 +- .../qt-s60/s60createpackagestep.h | 2 +- .../qt4projectmanager/qt-s60/s60devices.cpp | 7 +- src/plugins/qt4projectmanager/qt-s60/s60devices.h | 4 +- .../qt-s60/s60emulatorrunconfiguration.cpp | 2 +- .../qt4projectmanager/qt-s60/winscwtoolchain.cpp | 4 +- .../qt4projectmanager/qt-s60/winscwtoolchain.h | 2 +- .../qt4projectmanager/qt4buildconfiguration.cpp | 4 +- .../qt4projectmanager/qt4buildconfiguration.h | 2 +- .../qt4projectmanager/qt4runconfiguration.cpp | 28 +- .../qt4projectmanager/qt4runconfiguration.h | 14 +- src/plugins/qt4projectmanager/qtversionmanager.cpp | 10 +- src/plugins/qt4projectmanager/qtversionmanager.h | 2 +- 72 files changed, 850 insertions(+), 836 deletions(-) create mode 100644 src/libs/utils/environment.cpp create mode 100644 src/libs/utils/environment.h delete mode 100644 src/plugins/projectexplorer/environment.cpp delete mode 100644 src/plugins/projectexplorer/environment.h (limited to 'src') diff --git a/src/libs/utils/environment.cpp b/src/libs/utils/environment.cpp new file mode 100644 index 00000000000..03b0084ecc6 --- /dev/null +++ b/src/libs/utils/environment.cpp @@ -0,0 +1,443 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + +#include "environment.h" + +#include +#include +#include + +using namespace Utils; + +QList EnvironmentItem::fromStringList(QStringList list) +{ + QList result; + foreach (const QString &string, list) { + int pos = string.indexOf(QLatin1Char('=')); + if (pos == -1) { + EnvironmentItem item(string, QString()); + item.unset = true; + result.append(item); + } else { + EnvironmentItem item(string.left(pos), string.mid(pos+1)); + result.append(item); + } + } + return result; +} + +QStringList EnvironmentItem::toStringList(QList list) +{ + QStringList result; + foreach (const EnvironmentItem &item, list) { + if (item.unset) + result << QString(item.name); + else + result << QString(item.name + '=' + item.value); + } + return result; +} + +Environment::Environment() +{ +} + +Environment::Environment(QStringList env) +{ + foreach (const QString &s, env) { + int i = s.indexOf("="); + if (i >= 0) { +#ifdef Q_OS_WIN + m_values.insert(s.left(i).toUpper(), s.mid(i+1)); +#else + m_values.insert(s.left(i), s.mid(i+1)); +#endif + } + } +} + +QStringList Environment::toStringList() const +{ + QStringList result; + const QMap::const_iterator end = m_values.constEnd(); + for (QMap::const_iterator it = m_values.constBegin(); it != end; ++it) { + QString entry = it.key(); + entry += QLatin1Char('='); + entry += it.value(); + result.push_back(entry); + } + return result; +} + +void Environment::set(const QString &key, const QString &value) +{ +#ifdef Q_OS_WIN + QString _key = key.toUpper(); +#else + const QString &_key = key; +#endif + m_values.insert(_key, value); +} + +void Environment::unset(const QString &key) +{ +#ifdef Q_OS_WIN + QString _key = key.toUpper(); +#else + const QString &_key = key; +#endif + m_values.remove(_key); +} + +void Environment::appendOrSet(const QString &key, const QString &value, const QString &sep) +{ +#ifdef Q_OS_WIN + QString _key = key.toUpper(); +#else + const QString &_key = key; +#endif + QMap::iterator it = m_values.find(key); + if (it == m_values.end()) { + m_values.insert(_key, value); + } else { + // Append unless it is already there + const QString toAppend = sep + value; + if (!it.value().endsWith(toAppend)) + it.value().append(toAppend); + } +} + +void Environment::prependOrSet(const QString&key, const QString &value, const QString &sep) +{ +#ifdef Q_OS_WIN + QString _key = key.toUpper(); +#else + const QString &_key = key; +#endif + QMap::iterator it = m_values.find(key); + if (it == m_values.end()) { + m_values.insert(_key, value); + } else { + // Prepend unless it is already there + const QString toPrepend = value + sep; + if (!it.value().startsWith(toPrepend)) + it.value().prepend(toPrepend); + } +} + +void Environment::appendOrSetPath(const QString &value) +{ +#ifdef Q_OS_WIN + const QChar sep = QLatin1Char(';'); +#else + const QChar sep = QLatin1Char(':'); +#endif + appendOrSet(QLatin1String("PATH"), QDir::toNativeSeparators(value), QString(sep)); +} + +void Environment::prependOrSetPath(const QString &value) +{ +#ifdef Q_OS_WIN + const QChar sep = QLatin1Char(';'); +#else + const QChar sep = QLatin1Char(':'); +#endif + prependOrSet(QLatin1String("PATH"), QDir::toNativeSeparators(value), QString(sep)); +} + +Environment Environment::systemEnvironment() +{ + return Environment(QProcess::systemEnvironment()); +} + +void Environment::clear() +{ + m_values.clear(); +} + +QString Environment::searchInPath(QString executable) const +{ +// qDebug()<<"looking for "<::const_iterator it = m_values.constFind(name); + if (it == m_values.constEnd()) + return constEnd(); + else + return it; +} + +int Environment::size() const +{ + return m_values.size(); +} + +void Environment::modify(const QList & list) +{ + Environment resultEnvironment = *this; + foreach (const EnvironmentItem &item, list) { + if (item.unset) { + resultEnvironment.unset(item.name); + } else { + // TODO use variable expansion + QString value = item.value; + for (int i=0; i < value.size(); ++i) { + if (value.at(i) == QLatin1Char('$')) { + if ((i + 1) < value.size()) { + const QChar &c = value.at(i+1); + int end = -1; + if (c == '(') + end = value.indexOf(')', i); + else if (c == '{') + end = value.indexOf('}', i); + if (end != -1) { + const QString &name = value.mid(i+2, end-i-2); + Environment::const_iterator it = find(name); + if (it != constEnd()) + value.replace(i, end-i+1, it.value()); + } + } + } + } + resultEnvironment.set(item.name, value); + } + } + *this = resultEnvironment; +} + +bool Environment::hasKey(const QString &key) +{ + return m_values.contains(key); +} + +bool Environment::operator!=(const Environment &other) const +{ + return !(*this == other); +} + +bool Environment::operator==(const Environment &other) const +{ + return m_values == other.m_values; +} + +QStringList Environment::parseCombinedArgString(const QString &program) +{ + QStringList args; + QString tmp; + int quoteCount = 0; + bool inQuote = false; + + // handle quoting. tokens can be surrounded by double quotes + // "hello world". three consecutive double quotes represent + // the quote character itself. + for (int i = 0; i < program.size(); ++i) { + if (program.at(i) == QLatin1Char('"')) { + ++quoteCount; + if (quoteCount == 3) { + // third consecutive quote + quoteCount = 0; + tmp += program.at(i); + } + continue; + } + if (quoteCount) { + if (quoteCount == 1) + inQuote = !inQuote; + quoteCount = 0; + } + if (!inQuote && program.at(i).isSpace()) { + if (!tmp.isEmpty()) { + args += tmp; + tmp.clear(); + } + } else { + tmp += program.at(i); + } + } + if (!tmp.isEmpty()) + args += tmp; + return args; +} + +QString Environment::joinArgumentList(const QStringList &arguments) +{ + QString result; + const QChar doubleQuote = QLatin1Char('"'); + foreach (QString arg, arguments) { + if (!result.isEmpty()) + result += QLatin1Char(' '); + arg.replace(QString(doubleQuote), QLatin1String("\"\"\"")); + if (arg.contains(QLatin1Char(' '))) { + arg.insert(0, doubleQuote); + arg += doubleQuote; + } + result += arg; + } + return result; +} + +enum State { BASE, VARIABLE, OPTIONALVARIABLEBRACE, STRING, STRING_ESCAPE, ESCAPE }; + +/** Expand environment variables in a string. + * + * Environment variables are accepted in the following forms: + * $SOMEVAR, ${SOMEVAR} and %SOMEVAR%. + * + * The following escape sequences are supported: + * "\$", "\\" and "\"" which will be replaced by '$', '\' and '%' + * respectively. + * + * Strings enclosed in '"' characters do not get varaibles + * substituted. Escape codes are processed though. + * + */ +QString Environment::expandVariables(const QString &input) const +{ + QString result; + QString variable; + QChar endVariable; + State state = BASE; + + int length = input.count(); + for (int i = 0; i < length; ++i) { + QChar c = input.at(i); + if (state == BASE) { + if (c == '\\') { + state = ESCAPE; + } else if (c == '$') { + state = OPTIONALVARIABLEBRACE; + variable.clear(); + endVariable = QChar(0); + } else if (c == '%') { + state = VARIABLE; + variable.clear(); + endVariable = '%'; + } else if (c == '\"') { + state = STRING; + result += c; + } else { + result += c; + } + } else if (state == VARIABLE) { + if (c == endVariable) { + result += value(variable); + state = BASE; + } else if (c.isLetterOrNumber() || c == '_') { + variable += c; + } else { + result += value(variable); + result += c; + state = BASE; + } + } else if (state == OPTIONALVARIABLEBRACE) { + if (c == '{') + endVariable = '}'; + else + variable = c; + state = VARIABLE; + } else if (state == STRING) { + if (c == '\\') { + state = STRING_ESCAPE; + } else if (c == '\"') { + state = BASE; + result += c; + } else { + result += c; + } + } else if (state == STRING_ESCAPE) { + result += c; + state = STRING; + } else if (state == ESCAPE){ + result += c; + state = BASE; + } + } + if (state == VARIABLE) + result += value(variable); + return result; +} diff --git a/src/libs/utils/environment.h b/src/libs/utils/environment.h new file mode 100644 index 00000000000..1177c4dc1c1 --- /dev/null +++ b/src/libs/utils/environment.h @@ -0,0 +1,109 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + +#ifndef UTILS_ENVIRONMENT_H +#define UTILS_ENVIRONMENT_H + +#include "utils_global.h" + +#include +#include +#include +#include + +namespace Utils { + +class QTCREATOR_UTILS_EXPORT EnvironmentItem +{ +public: + EnvironmentItem(QString n, QString v) + : name(n), value(v), unset(false) + {} + + QString name; + QString value; + bool unset; + + bool operator==(const EnvironmentItem &other) + { + return (unset == other.unset) && (name == other.name) && (value == other.value); + } + + static QList fromStringList(QStringList list); + static QStringList toStringList(QList list); +}; + +class QTCREATOR_UTILS_EXPORT Environment { +public: + typedef QMap::const_iterator const_iterator; + + Environment(); + explicit Environment(QStringList env); + static Environment systemEnvironment(); + + QStringList toStringList() const; + QString value(const QString &key) const; + void set(const QString &key, const QString &value); + void unset(const QString &key); + void modify(const QList & list); + bool hasKey(const QString &key); + + void appendOrSet(const QString &key, const QString &value, const QString &sep = QString()); + void prependOrSet(const QString &key, const QString &value, const QString &sep = QString()); + + void appendOrSetPath(const QString &value); + void prependOrSetPath(const QString &value); + + void clear(); + int size() const; + + Environment::const_iterator find(const QString &name); + QString key(Environment::const_iterator it) const; + QString value(Environment::const_iterator it) const; + + Environment::const_iterator constBegin() const; + Environment::const_iterator constEnd() const; + + QString searchInPath(QString executable) const; + QStringList path() const; + + static QStringList parseCombinedArgString(const QString &program); + static QString joinArgumentList(const QStringList &arguments); + + QString expandVariables(const QString &) const; + + bool operator!=(const Environment &other) const; + bool operator==(const Environment &other) const; +private: + QMap m_values; +}; + +} // namespace Utils + +#endif // UTILS_ENVIRONMENT_H diff --git a/src/libs/utils/utils-lib.pri b/src/libs/utils/utils-lib.pri index d338913edf3..bfae91f6345 100644 --- a/src/libs/utils/utils-lib.pri +++ b/src/libs/utils/utils-lib.pri @@ -6,7 +6,8 @@ dll { INCLUDEPATH += $$PWD -SOURCES += $$PWD/reloadpromptutils.cpp \ +SOURCES += $$PWD/environment.cpp \ + $$PWD/reloadpromptutils.cpp \ $$PWD/stringutils.cpp \ $$PWD/filesearch.cpp \ $$PWD/pathchooser.cpp \ @@ -61,7 +62,8 @@ unix:!macx { HEADERS += $$PWD/unixutils.h SOURCES += $$PWD/unixutils.cpp } -HEADERS += $$PWD/utils_global.h \ +HEADERS += $$PWD/environment.h \ + $$PWD/utils_global.h \ $$PWD/reloadpromptutils.h \ $$PWD/stringutils.h \ $$PWD/filesearch.h \ diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp index d05c672c269..63b31434f21 100644 --- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp @@ -40,7 +40,6 @@ #include "cmakeprojectmanager.h" #include -#include #include #include @@ -65,7 +64,7 @@ using namespace CMakeProjectManager::Internal; // |--> Already existing cbp file (and new enough) --> Page: Ready to load the project // |--> Page: Ask for cmd options, run generator -CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const ProjectExplorer::Environment &env) +CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const Utils::Environment &env) : m_cmakeManager(cmakeManager), m_sourceDirectory(sourceDirectory), m_creatingCbpFiles(false), @@ -99,7 +98,7 @@ CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const QString &buildDirectory, CMakeOpenProjectWizard::Mode mode, - const ProjectExplorer::Environment &env) + const Utils::Environment &env) : m_cmakeManager(cmakeManager), m_sourceDirectory(sourceDirectory), m_creatingCbpFiles(true), @@ -119,7 +118,7 @@ CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const QString &oldBuildDirectory, - const ProjectExplorer::Environment &env) + const Utils::Environment &env) : m_cmakeManager(cmakeManager), m_sourceDirectory(sourceDirectory), m_creatingCbpFiles(true), @@ -213,7 +212,7 @@ void CMakeOpenProjectWizard::setArguments(const QStringList &args) m_arguments = args; } -ProjectExplorer::Environment CMakeOpenProjectWizard::environment() const +Utils::Environment CMakeOpenProjectWizard::environment() const { return m_environment; } @@ -422,7 +421,7 @@ void CMakeRunPage::runCMake() { m_runCMake->setEnabled(false); m_argumentsLineEdit->setEnabled(false); - QStringList arguments = ProjectExplorer::Environment::parseCombinedArgString(m_argumentsLineEdit->text()); + QStringList arguments = Utils::Environment::parseCombinedArgString(m_argumentsLineEdit->text()); CMakeManager *cmakeManager = m_cmakeWizard->cmakeManager(); #ifdef Q_OS_WIN @@ -444,7 +443,7 @@ void CMakeRunPage::runCMake() #else // Q_OS_WIN QString generator = QLatin1String("-GCodeBlocks - Unix Makefiles"); #endif - ProjectExplorer::Environment env = m_cmakeWizard->environment(); + Utils::Environment env = m_cmakeWizard->environment(); if (!m_cmakeWizard->msvcVersion().isEmpty()) { // Add the environment of that msvc version to environment ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChain::createMSVCToolChain(m_cmakeWizard->msvcVersion(), false); @@ -482,7 +481,7 @@ void CMakeRunPage::cmakeFinished() m_argumentsLineEdit->setEnabled(true); m_cmakeProcess->deleteLater(); m_cmakeProcess = 0; - m_cmakeWizard->setArguments(ProjectExplorer::Environment::parseCombinedArgString(m_argumentsLineEdit->text())); + m_cmakeWizard->setArguments(Utils::Environment::parseCombinedArgString(m_argumentsLineEdit->text())); //TODO Actually test that running cmake was finished, for setting this bool m_complete = true; emit completeChanged(); diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h index 14d020d531e..1fc1dc2ebba 100644 --- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h +++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h @@ -30,7 +30,7 @@ #ifndef CMAKEOPENPROJECTWIZARD_H #define CMAKEOPENPROJECTWIZARD_H -#include +#include #include #include @@ -67,14 +67,14 @@ public: }; // used at importing a project without a .user file - CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const ProjectExplorer::Environment &env); + CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const Utils::Environment &env); /// used to update if we have already a .user file /// recreates or updates the cbp file - CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const QString &buildDirectory, Mode mode, const ProjectExplorer::Environment &env); + CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const QString &buildDirectory, Mode mode, const Utils::Environment &env); /// used to change the build directory of one buildconfiguration /// shows a page for selecting a directory /// then the run cmake page - CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const QString &oldBuildDirectory, const ProjectExplorer::Environment &env); + CMakeOpenProjectWizard(CMakeManager *cmakeManager, const QString &sourceDirectory, const QString &oldBuildDirectory, const Utils::Environment &env); virtual int nextId() const; QString buildDirectory() const; @@ -83,7 +83,7 @@ public: CMakeManager *cmakeManager() const; QStringList arguments() const; void setArguments(const QStringList &args); - ProjectExplorer::Environment environment() const; + Utils::Environment environment() const; QString msvcVersion() const; void setMsvcVersion(const QString &version); bool existsUpToDateXmlFile() const; @@ -96,7 +96,7 @@ private: QStringList m_arguments; QString m_msvcVersion; bool m_creatingCbpFiles; - ProjectExplorer::Environment m_environment; + Utils::Environment m_environment; }; class InSourceBuildPage : public QWizardPage diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index ef877036702..a925f8aa201 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -56,8 +56,6 @@ using namespace CMakeProjectManager; using namespace CMakeProjectManager::Internal; using namespace ProjectExplorer; -using ProjectExplorer::Environment; -using ProjectExplorer::EnvironmentItem; // QtCreator CMake Generator wishlist: // Which make targets we need to build to get all executables @@ -478,7 +476,7 @@ bool CMakeProject::fromMap(const QVariantMap &map) // Ask the user for where he wants to build it // and the cmake command line - CMakeOpenProjectWizard copw(m_manager, projectDirectory(), ProjectExplorer::Environment::systemEnvironment()); + CMakeOpenProjectWizard copw(m_manager, projectDirectory(), Utils::Environment::systemEnvironment()); if (copw.exec() != QDialog::Accepted) return false; diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index 5805d88ab23..aaffb08bd48 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -36,7 +36,6 @@ #include #include #include -#include #include #include #include @@ -103,7 +102,9 @@ bool CMakeManager::hasCodeBlocksMsvcGenerator() const // we probably want the process instead of this function // cmakeproject then could even run the cmake process in the background, adding the files afterwards // sounds like a plan -void CMakeManager::createXmlFile(QProcess *proc, const QStringList &arguments, const QString &sourceDirectory, const QDir &buildDirectory, const ProjectExplorer::Environment &env, const QString &generator) +void CMakeManager::createXmlFile(QProcess *proc, const QStringList &arguments, + const QString &sourceDirectory, const QDir &buildDirectory, + const Utils::Environment &env, const QString &generator) { // We create a cbp file, only if we didn't find a cbp file in the base directory // Yet that can still override cbp files in subdirectories @@ -119,7 +120,8 @@ void CMakeManager::createXmlFile(QProcess *proc, const QStringList &arguments, c proc->setProcessChannelMode(QProcess::MergedChannels); proc->setEnvironment(env.toStringList()); - const QString srcdir = buildDirectory.exists(QLatin1String("CMakeCache.txt")) ? QString(QLatin1Char('.')) : sourceDirectory; + const QString srcdir = buildDirectory.exists(QLatin1String("CMakeCache.txt")) ? + QString(QLatin1Char('.')) : sourceDirectory; proc->start(cmakeExecutable(), QStringList() << srcdir << arguments << generator); } @@ -243,7 +245,7 @@ CMakeSettingsPage::~CMakeSettingsPage() QString CMakeSettingsPage::findCmakeExecutable() const { - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); return env.searchInPath(QLatin1String("cmake")); } diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h index e4f29233d50..f6bae9241d4 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h @@ -32,7 +32,7 @@ #include #include -#include +#include #include #include #include @@ -67,15 +67,15 @@ public: const QStringList &arguments, const QString &sourceDirectory, const QDir &buildDirectory, - const ProjectExplorer::Environment &env, + const Utils::Environment &env, const QString &generator); bool hasCodeBlocksMsvcGenerator() const; static QString findCbpFile(const QDir &); - static QString findDumperLibrary(const ProjectExplorer::Environment &env); + static QString findDumperLibrary(const Utils::Environment &env); private: static QString qtVersionForQMake(const QString &qmakePath); - static QPair findQtDir(const ProjectExplorer::Environment &env); + static QPair findQtDir(const Utils::Environment &env); Core::Context m_projectContext; Core::Context m_projectLanguage; CMakeSettingsPage *m_settingsPage; diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp index 8549e05359a..33602ccc748 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp @@ -35,7 +35,6 @@ #include "cmaketarget.h" #include -#include #include #include #include @@ -141,7 +140,7 @@ QString CMakeRunConfiguration::workingDirectory() const QStringList CMakeRunConfiguration::commandLineArguments() const { - return ProjectExplorer::Environment::parseCombinedArgString(m_arguments); + return Utils::Environment::parseCombinedArgString(m_arguments); } QString CMakeRunConfiguration::title() const @@ -186,7 +185,7 @@ QVariantMap CMakeRunConfiguration::toMap() const map.insert(QLatin1String(USE_TERMINAL_KEY), m_runMode == Console); map.insert(QLatin1String(TITLE_KEY), m_title); map.insert(QLatin1String(ARGUMENTS_KEY), m_arguments); - map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), ProjectExplorer::EnvironmentItem::toStringList(m_userEnvironmentChanges)); + map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), Utils::EnvironmentItem::toStringList(m_userEnvironmentChanges)); map.insert(QLatin1String(BASE_ENVIRONMENT_BASE_KEY), m_baseEnvironmentBase); return map; @@ -200,7 +199,7 @@ bool CMakeRunConfiguration::fromMap(const QVariantMap &map) m_runMode = map.value(QLatin1String(USE_TERMINAL_KEY)).toBool() ? Console : Gui; m_title = map.value(QLatin1String(TITLE_KEY)).toString(); m_arguments = map.value(QLatin1String(ARGUMENTS_KEY)).toString(); - m_userEnvironmentChanges = ProjectExplorer::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); + m_userEnvironmentChanges = Utils::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); m_baseEnvironmentBase = static_cast(map.value(QLatin1String(BASE_ENVIRONMENT_BASE_KEY), static_cast(CMakeRunConfiguration::BuildEnvironmentBase)).toInt()); return RunConfiguration::fromMap(map); @@ -238,13 +237,13 @@ QStringList CMakeRunConfiguration::dumperLibraryLocations() const return ProjectExplorer::DebuggingHelperLibrary::debuggingHelperLibraryLocationsByInstallData(qtInstallData); } -ProjectExplorer::Environment CMakeRunConfiguration::baseEnvironment() const +Utils::Environment CMakeRunConfiguration::baseEnvironment() const { - ProjectExplorer::Environment env; + Utils::Environment env; if (m_baseEnvironmentBase == CMakeRunConfiguration::CleanEnvironmentBase) { // Nothing } else if (m_baseEnvironmentBase == CMakeRunConfiguration::SystemEnvironmentBase) { - env = ProjectExplorer::Environment::systemEnvironment(); + env = Utils::Environment::systemEnvironment(); } else if (m_baseEnvironmentBase == CMakeRunConfiguration::BuildEnvironmentBase) { env = activeBuildConfiguration()->environment(); } @@ -276,19 +275,19 @@ CMakeRunConfiguration::BaseEnvironmentBase CMakeRunConfiguration::baseEnvironmen return m_baseEnvironmentBase; } -ProjectExplorer::Environment CMakeRunConfiguration::environment() const +Utils::Environment CMakeRunConfiguration::environment() const { - ProjectExplorer::Environment env = baseEnvironment(); + Utils::Environment env = baseEnvironment(); env.modify(userEnvironmentChanges()); return env; } -QList CMakeRunConfiguration::userEnvironmentChanges() const +QList CMakeRunConfiguration::userEnvironmentChanges() const { return m_userEnvironmentChanges; } -void CMakeRunConfiguration::setUserEnvironmentChanges(const QList &diff) +void CMakeRunConfiguration::setUserEnvironmentChanges(const QList &diff) { if (m_userEnvironmentChanges != diff) { m_userEnvironmentChanges = diff; @@ -327,7 +326,7 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration * fl->setMargin(0); fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); QLineEdit *argumentsLineEdit = new QLineEdit(); - argumentsLineEdit->setText(ProjectExplorer::Environment::joinArgumentList(cmakeRunConfiguration->commandLineArguments())); + argumentsLineEdit->setText(Utils::Environment::joinArgumentList(cmakeRunConfiguration->commandLineArguments())); connect(argumentsLineEdit, SIGNAL(textChanged(QString)), this, SLOT(setArguments(QString))); fl->addRow(tr("Arguments:"), argumentsLineEdit); @@ -426,7 +425,7 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration * this, SLOT(workingDirectoryChanged(QString))); connect(m_cmakeRunConfiguration, SIGNAL(baseEnvironmentChanged()), this, SLOT(baseEnvironmentChanged())); - connect(m_cmakeRunConfiguration, SIGNAL(userEnvironmentChangesChanged(QList)), + connect(m_cmakeRunConfiguration, SIGNAL(userEnvironmentChangesChanged(QList)), this, SLOT(userEnvironmentChangesChanged())); } diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h index 07d982251ef..0e9198e23db 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h @@ -31,9 +31,9 @@ #define CMAKERUNCONFIGURATION_H #include -#include #include #include +#include #include #include @@ -69,7 +69,7 @@ public: RunMode runMode() const; QString workingDirectory() const; QStringList commandLineArguments() const; - ProjectExplorer::Environment environment() const; + Utils::Environment environment() const; QWidget *createConfigurationWidget(); void setExecutable(const QString &executable); @@ -92,7 +92,7 @@ public: signals: void baseEnvironmentChanged(); - void userEnvironmentChangesChanged(const QList &diff); + void userEnvironmentChangesChanged(const QList &diff); void workingDirectoryChanged(const QString&); private slots: @@ -111,11 +111,11 @@ private: BuildEnvironmentBase = 2}; void setBaseEnvironmentBase(BaseEnvironmentBase env); BaseEnvironmentBase baseEnvironmentBase() const; - ProjectExplorer::Environment baseEnvironment() const; + Utils::Environment baseEnvironment() const; QString baseEnvironmentText() const; - void setUserEnvironmentChanges(const QList &diff); - QList userEnvironmentChanges() const; + void setUserEnvironmentChanges(const QList &diff); + QList userEnvironmentChanges() const; RunMode m_runMode; QString m_buildTarget; @@ -123,7 +123,7 @@ private: QString m_userWorkingDirectory; QString m_title; QString m_arguments; - QList m_userEnvironmentChanges; + QList m_userEnvironmentChanges; BaseEnvironmentBase m_baseEnvironmentBase; bool m_enabled; }; diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp index 115ed1aa91d..bc820b5da26 100644 --- a/src/plugins/cmakeprojectmanager/makestep.cpp +++ b/src/plugins/cmakeprojectmanager/makestep.cpp @@ -238,7 +238,7 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep) void MakeStepConfigWidget::additionalArgumentsEdited() { - m_makeStep->setAdditionalArguments(Environment::parseCombinedArgString(m_additionalArguments->text())); + m_makeStep->setAdditionalArguments(Utils::Environment::parseCombinedArgString(m_additionalArguments->text())); updateDetails(); } @@ -265,7 +265,7 @@ void MakeStepConfigWidget::init() // and connect again connect(m_buildTargetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*))); - m_additionalArguments->setText(Environment::joinArgumentList(m_makeStep->additionalArguments())); + m_additionalArguments->setText(Utils::Environment::joinArgumentList(m_makeStep->additionalArguments())); updateDetails(); CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeTarget()->cmakeProject(); diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 0af9b3d6eb0..b16738ab62f 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -53,7 +53,6 @@ #include #include -#include #include #include #include @@ -64,6 +63,7 @@ #include +#include #include #include @@ -772,7 +772,7 @@ void DebuggerEngine::startDebugger(DebuggerRunControl *runControl) ? d->m_startParameters.attachPID : 0; if (d->m_startParameters.environment.empty()) - d->m_startParameters.environment = Environment().toStringList(); + d->m_startParameters.environment = Utils::Environment().toStringList(); if (d->m_startParameters.breakAtMain) breakByFunctionMain(); diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp index a0ada3aaa38..41d69fad6e4 100644 --- a/src/plugins/debugger/debuggerrunner.cpp +++ b/src/plugins/debugger/debuggerrunner.cpp @@ -46,7 +46,6 @@ #endif #include -#include #include #include #include @@ -54,6 +53,7 @@ #include #include // For LocalApplication* +#include #include #include #include @@ -479,7 +479,7 @@ QString DebuggerRunControl::displayName() const return d->m_engine->startParameters().displayName; } -void DebuggerRunControl::setCustomEnvironment(ProjectExplorer::Environment env) +void DebuggerRunControl::setCustomEnvironment(Utils::Environment env) { d->m_engine->startParameters().environment = env.toStringList(); } diff --git a/src/plugins/debugger/debuggerrunner.h b/src/plugins/debugger/debuggerrunner.h index 64ed000425f..3c7aaf1dd3d 100644 --- a/src/plugins/debugger/debuggerrunner.h +++ b/src/plugins/debugger/debuggerrunner.h @@ -37,7 +37,7 @@ #include -namespace ProjectExplorer { +namespace Utils { class Environment; } @@ -104,7 +104,7 @@ public: void createEngine(const DebuggerStartParameters &startParameters); - void setCustomEnvironment(ProjectExplorer::Environment env); + void setCustomEnvironment(Utils::Environment env); void setEnabledEngines(DebuggerEngineType enabledEngines); void startFailed(); diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index 4545bc3d9b5..80223489d61 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -46,9 +46,9 @@ #include "watchutils.h" #include -#include #include +#include #include #include diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp index 6f0740e08f8..d0fb2088a93 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.cpp @@ -84,9 +84,9 @@ bool GenericBuildConfiguration::fromMap(const QVariantMap &map) return BuildConfiguration::fromMap(map); } -ProjectExplorer::Environment GenericBuildConfiguration::environment() const +Utils::Environment GenericBuildConfiguration::environment() const { - return ProjectExplorer::Environment::systemEnvironment(); + return Utils::Environment::systemEnvironment(); } QString GenericBuildConfiguration::buildDirectory() const diff --git a/src/plugins/genericprojectmanager/genericbuildconfiguration.h b/src/plugins/genericprojectmanager/genericbuildconfiguration.h index eae5d0e749c..92c019bf4f0 100644 --- a/src/plugins/genericprojectmanager/genericbuildconfiguration.h +++ b/src/plugins/genericprojectmanager/genericbuildconfiguration.h @@ -49,7 +49,7 @@ public: GenericTarget *genericTarget() const; - virtual ProjectExplorer::Environment environment() const; + virtual Utils::Environment environment() const; virtual QString buildDirectory() const; QString rawBuildDirectory() const; diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp index 51406bf64a7..1c727de628c 100644 --- a/src/plugins/genericprojectmanager/genericmakestep.cpp +++ b/src/plugins/genericprojectmanager/genericmakestep.cpp @@ -247,7 +247,7 @@ void GenericMakeStepConfigWidget::init() m_ui->makeLineEdit->setText(makeCommand); const QStringList &makeArguments = m_makeStep->m_makeArguments; - m_ui->makeArgumentsLineEdit->setText(ProjectExplorer::Environment::joinArgumentList(makeArguments)); + m_ui->makeArgumentsLineEdit->setText(Utils::Environment::joinArgumentList(makeArguments)); // Disconnect to make the changes to the items disconnect(m_ui->targetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*))); @@ -267,7 +267,7 @@ void GenericMakeStepConfigWidget::updateDetails() { m_summaryText = tr("Make: %1 %2") .arg(m_makeStep->makeCommand(), - ProjectExplorer::Environment::joinArgumentList(m_makeStep->replacedArguments())); + Utils::Environment::joinArgumentList(m_makeStep->replacedArguments())); emit updateSummary(); } @@ -291,7 +291,7 @@ void GenericMakeStepConfigWidget::makeLineEditTextEdited() void GenericMakeStepConfigWidget::makeArgumentsLineEditTextEdited() { m_makeStep->m_makeArguments = - ProjectExplorer::Environment::parseCombinedArgString(m_ui->makeArgumentsLineEdit->text()); + Utils::Environment::parseCombinedArgString(m_ui->makeArgumentsLineEdit->text()); updateDetails(); } diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 8df29c6a4c6..d957a1bc0a6 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -54,8 +54,6 @@ #include #include -#include - #include #include #include diff --git a/src/plugins/projectexplorer/abstractprocessstep.cpp b/src/plugins/projectexplorer/abstractprocessstep.cpp index bc93d08265f..ceee50083bb 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.cpp +++ b/src/plugins/projectexplorer/abstractprocessstep.cpp @@ -124,7 +124,7 @@ void AbstractProcessStep::setIgnoreReturnValue(bool b) m_ignoreReturnValue = b; } -void AbstractProcessStep::setEnvironment(Environment env) +void AbstractProcessStep::setEnvironment(Utils::Environment env) { m_environment = env; } diff --git a/src/plugins/projectexplorer/abstractprocessstep.h b/src/plugins/projectexplorer/abstractprocessstep.h index 8f5ce79215f..b9d951e5a45 100644 --- a/src/plugins/projectexplorer/abstractprocessstep.h +++ b/src/plugins/projectexplorer/abstractprocessstep.h @@ -31,7 +31,8 @@ #define ABSTRACTPROCESSSTEP_H #include "buildstep.h" -#include "environment.h" + +#include #include #include @@ -104,7 +105,7 @@ public: void setIgnoreReturnValue(bool b); /// Set the Environment for running the command /// should be called from init() - void setEnvironment(Environment env); + void setEnvironment(Utils::Environment env); QString workingDirectory() const; @@ -159,7 +160,7 @@ private: bool m_ignoreReturnValue; QProcess *m_process; QEventLoop *m_eventLoop; - ProjectExplorer::Environment m_environment; + Utils::Environment m_environment; ProjectExplorer::IOutputParser *m_outputParserChain; }; diff --git a/src/plugins/projectexplorer/applicationrunconfiguration.h b/src/plugins/projectexplorer/applicationrunconfiguration.h index 2325841e771..ca84cce27dd 100644 --- a/src/plugins/projectexplorer/applicationrunconfiguration.h +++ b/src/plugins/projectexplorer/applicationrunconfiguration.h @@ -35,9 +35,11 @@ #include "runconfiguration.h" #include "applicationlauncher.h" -namespace ProjectExplorer { - +namespace Utils { class Environment; +} + +namespace ProjectExplorer { class PROJECTEXPLORER_EXPORT LocalApplicationRunConfiguration : public RunConfiguration { @@ -53,7 +55,7 @@ public: virtual RunMode runMode() const = 0; virtual QString workingDirectory() const = 0; virtual QStringList commandLineArguments() const = 0; - virtual Environment environment() const = 0; + virtual Utils::Environment environment() const = 0; virtual QString dumperLibrary() const = 0; virtual QStringList dumperLibraryLocations() const = 0; virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const = 0; diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 03d28f5635b..67bbc4db5f2 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -98,7 +98,7 @@ QVariantMap BuildConfiguration::toMap() const { QVariantMap map(ProjectConfiguration::toMap()); map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), m_clearSystemEnvironment); - map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(m_userEnvironmentChanges)); + map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), Utils::EnvironmentItem::toStringList(m_userEnvironmentChanges)); map.insert(QLatin1String(BUILD_STEP_LIST_COUNT), m_stepLists.count()); for (int i = 0; i < m_stepLists.count(); ++i) @@ -110,7 +110,7 @@ QVariantMap BuildConfiguration::toMap() const bool BuildConfiguration::fromMap(const QVariantMap &map) { m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool(); - m_userEnvironmentChanges = EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); + m_userEnvironmentChanges = Utils::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); qDeleteAll(m_stepLists); m_stepLists.clear(); @@ -143,11 +143,11 @@ Target *BuildConfiguration::target() const return static_cast(parent()); } -Environment BuildConfiguration::baseEnvironment() const +Utils::Environment BuildConfiguration::baseEnvironment() const { - Environment result; + Utils::Environment result; if (useSystemEnvironment()) - result = Environment(QProcess::systemEnvironment()); + result = Utils::Environment(QProcess::systemEnvironment()); result.set(QLatin1String("BUILDDIR"), QDir::toNativeSeparators(target()->project()->projectDirectory())); result.set(QLatin1String("SOURCEDIR"), QDir::toNativeSeparators(target()->project()->projectDirectory())); @@ -163,9 +163,9 @@ QString BuildConfiguration::baseEnvironmentText() const return tr("Clean Environment"); } -Environment BuildConfiguration::environment() const +Utils::Environment BuildConfiguration::environment() const { - Environment env = baseEnvironment(); + Utils::Environment env = baseEnvironment(); env.modify(userEnvironmentChanges()); return env; } @@ -183,12 +183,12 @@ bool BuildConfiguration::useSystemEnvironment() const return !m_clearSystemEnvironment; } -QList BuildConfiguration::userEnvironmentChanges() const +QList BuildConfiguration::userEnvironmentChanges() const { return m_userEnvironmentChanges; } -void BuildConfiguration::setUserEnvironmentChanges(const QList &diff) +void BuildConfiguration::setUserEnvironmentChanges(const QList &diff) { if (m_userEnvironmentChanges == diff) return; diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h index ef0f52d3d23..ac6ed8fccc0 100644 --- a/src/plugins/projectexplorer/buildconfiguration.h +++ b/src/plugins/projectexplorer/buildconfiguration.h @@ -31,7 +31,8 @@ #define BUILDCONFIGURATION_H #include "projectexplorer_export.h" -#include "environment.h" + +#include #include #include @@ -57,11 +58,11 @@ public: virtual QString buildDirectory() const = 0; // TODO: Maybe the BuildConfiguration is not the best place for the environment - virtual Environment baseEnvironment() const; + virtual Utils::Environment baseEnvironment() const; QString baseEnvironmentText() const; - Environment environment() const; - void setUserEnvironmentChanges(const QList &diff); - QList userEnvironmentChanges() const; + Utils::Environment environment() const; + void setUserEnvironmentChanges(const QList &diff); + QList userEnvironmentChanges() const; bool useSystemEnvironment() const; void setUseSystemEnvironment(bool b); @@ -93,7 +94,7 @@ protected: private: bool m_clearSystemEnvironment; - QList m_userEnvironmentChanges; + QList m_userEnvironmentChanges; QList m_stepLists; }; diff --git a/src/plugins/projectexplorer/cesdkhandler.cpp b/src/plugins/projectexplorer/cesdkhandler.cpp index 7e035e6ba7d..a0fcb7cd415 100644 --- a/src/plugins/projectexplorer/cesdkhandler.cpp +++ b/src/plugins/projectexplorer/cesdkhandler.cpp @@ -28,7 +28,8 @@ **************************************************************************/ #include "cesdkhandler.h" -#include "environment.h" + +#include #include #include @@ -36,7 +37,7 @@ using namespace ProjectExplorer; using namespace ProjectExplorer::Internal; -using ProjectExplorer::Environment; +using Utils::Environment; CeSdkInfo::CeSdkInfo() : m_major(0), m_minor(0) diff --git a/src/plugins/projectexplorer/cesdkhandler.h b/src/plugins/projectexplorer/cesdkhandler.h index ae4cf52a668..1141bd42d54 100644 --- a/src/plugins/projectexplorer/cesdkhandler.h +++ b/src/plugins/projectexplorer/cesdkhandler.h @@ -38,8 +38,11 @@ #define VCINSTALL_MACRO "$(VCInstallDir)" #define VSINSTALL_MACRO "$(VSInstallDir)" -namespace ProjectExplorer { +namespace Utils { class Environment; +} + +namespace ProjectExplorer { class PROJECTEXPLORER_EXPORT CeSdkInfo { @@ -49,7 +52,7 @@ public: inline QString binPath(); inline QString includePath(); inline QString libPath(); - void addToEnvironment(ProjectExplorer::Environment &env); + void addToEnvironment(Utils::Environment &env); inline bool isValid(); inline int majorVersion(); inline int minorVersion(); diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp index 8dffa826eb0..c6886ae8a91 100644 --- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp +++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp @@ -28,7 +28,6 @@ **************************************************************************/ #include "customexecutablerunconfiguration.h" -#include "environment.h" #include #include @@ -37,6 +36,7 @@ #include #include #include +#include #include #include @@ -187,7 +187,7 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE connect(m_runConfiguration, SIGNAL(baseEnvironmentChanged()), this, SLOT(baseEnvironmentChanged())); - connect(m_runConfiguration, SIGNAL(userEnvironmentChangesChanged(QList)), + connect(m_runConfiguration, SIGNAL(userEnvironmentChangesChanged(QList)), this, SLOT(userEnvironmentChangesChanged())); } @@ -273,13 +273,12 @@ void CustomExecutableConfigurationWidget::changed() if (!executable.isEmpty()) text = tr("Running executable: %1 %2"). arg(executable, - ProjectExplorer::Environment::joinArgumentList(m_runConfiguration->commandLineArguments())); - + Utils::Environment::joinArgumentList(m_runConfiguration->commandLineArguments())); // We triggered the change, don't update us if (m_ignoreChange) return; m_executableChooser->setPath(executable); - m_commandLineArgumentsLineEdit->setText(ProjectExplorer::Environment::joinArgumentList(m_runConfiguration->commandLineArguments())); + m_commandLineArgumentsLineEdit->setText(Utils::Environment::joinArgumentList(m_runConfiguration->commandLineArguments())); m_workingDirectory->setPath(m_runConfiguration->baseWorkingDirectory()); m_useTerminalCheck->setChecked(m_runConfiguration->runMode() == LocalApplicationRunConfiguration::Console); } @@ -347,7 +346,7 @@ QString CustomExecutableRunConfiguration::executable() const { QString exec; if (!m_executable.isEmpty() && QDir::isRelativePath(m_executable)) { - Environment env = environment(); + Utils::Environment env = environment(); exec = env.searchInPath(m_executable); if (exec.isEmpty()) exec = QDir::cleanPath(workingDirectory() + QLatin1Char('/') + m_executable); @@ -431,13 +430,13 @@ QString CustomExecutableRunConfiguration::baseEnvironmentText() const return QString(); } -ProjectExplorer::Environment CustomExecutableRunConfiguration::baseEnvironment() const +Utils::Environment CustomExecutableRunConfiguration::baseEnvironment() const { - ProjectExplorer::Environment env; + Utils::Environment env; if (m_baseEnvironmentBase == CustomExecutableRunConfiguration::CleanEnvironmentBase) { // Nothing } else if (m_baseEnvironmentBase == CustomExecutableRunConfiguration::SystemEnvironmentBase) { - env = ProjectExplorer::Environment::systemEnvironment(); + env = Utils::Environment::systemEnvironment(); } else if (m_baseEnvironmentBase == CustomExecutableRunConfiguration::BuildEnvironmentBase) { if (activeBuildConfiguration()) env = activeBuildConfiguration()->environment(); @@ -458,19 +457,19 @@ CustomExecutableRunConfiguration::BaseEnvironmentBase CustomExecutableRunConfigu return m_baseEnvironmentBase; } -ProjectExplorer::Environment CustomExecutableRunConfiguration::environment() const +Utils::Environment CustomExecutableRunConfiguration::environment() const { - ProjectExplorer::Environment env = baseEnvironment(); + Utils::Environment env = baseEnvironment(); env.modify(userEnvironmentChanges()); return env; } -QList CustomExecutableRunConfiguration::userEnvironmentChanges() const +QList CustomExecutableRunConfiguration::userEnvironmentChanges() const { return m_userEnvironmentChanges; } -void CustomExecutableRunConfiguration::setUserEnvironmentChanges(const QList &diff) +void CustomExecutableRunConfiguration::setUserEnvironmentChanges(const QList &diff) { if (m_userEnvironmentChanges != diff) { m_userEnvironmentChanges = diff; @@ -493,7 +492,7 @@ QVariantMap CustomExecutableRunConfiguration::toMap() const map.insert(QLatin1String(ARGUMENTS_KEY), m_cmdArguments); map.insert(QLatin1String(WORKING_DIRECTORY_KEY), m_workingDirectory); map.insert(QLatin1String(USE_TERMINAL_KEY), m_runMode == Console); - map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), ProjectExplorer::EnvironmentItem::toStringList(m_userEnvironmentChanges)); + map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), Utils::EnvironmentItem::toStringList(m_userEnvironmentChanges)); map.insert(QLatin1String(BASE_ENVIRONMENT_BASE_KEY), static_cast(m_baseEnvironmentBase)); return map; } @@ -504,7 +503,7 @@ bool CustomExecutableRunConfiguration::fromMap(const QVariantMap &map) m_cmdArguments = map.value(QLatin1String(ARGUMENTS_KEY)).toStringList(); m_workingDirectory = map.value(QLatin1String(WORKING_DIRECTORY_KEY)).toString(); m_runMode = map.value(QLatin1String(USE_TERMINAL_KEY)).toBool() ? Console : Gui; - m_userEnvironmentChanges = ProjectExplorer::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); + m_userEnvironmentChanges = Utils::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); m_baseEnvironmentBase = static_cast(map.value(QLatin1String(BASE_ENVIRONMENT_BASE_KEY), static_cast(CustomExecutableRunConfiguration::BuildEnvironmentBase)).toInt()); setDefaultDisplayName(defaultDisplayName()); @@ -522,7 +521,7 @@ void CustomExecutableRunConfiguration::setExecutable(const QString &executable) void CustomExecutableRunConfiguration::setCommandLineArguments(const QString &commandLineArguments) { - m_cmdArguments = ProjectExplorer::Environment::parseCombinedArgString(commandLineArguments); + m_cmdArguments = Utils::Environment::parseCombinedArgString(commandLineArguments); emit changed(); } diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.h b/src/plugins/projectexplorer/customexecutablerunconfiguration.h index 2ec71a26176..59ce495925c 100644 --- a/src/plugins/projectexplorer/customexecutablerunconfiguration.h +++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.h @@ -92,7 +92,7 @@ public: QString workingDirectory() const; QString baseWorkingDirectory() const; QStringList commandLineArguments() const; - Environment environment() const; + Utils::Environment environment() const; QWidget *createConfigurationWidget(); QString dumperLibrary() const; @@ -106,7 +106,7 @@ signals: void changed(); void baseEnvironmentChanged(); - void userEnvironmentChangesChanged(const QList &diff); + void userEnvironmentChangesChanged(const QList &diff); private slots: void activeBuildConfigurationChanged(); @@ -124,10 +124,10 @@ private: BuildEnvironmentBase = 2}; void setBaseEnvironmentBase(BaseEnvironmentBase env); BaseEnvironmentBase baseEnvironmentBase() const; - ProjectExplorer::Environment baseEnvironment() const; + Utils::Environment baseEnvironment() const; QString baseEnvironmentText() const; - void setUserEnvironmentChanges(const QList &diff); - QList userEnvironmentChanges() const; + void setUserEnvironmentChanges(const QList &diff); + QList userEnvironmentChanges() const; void setExecutable(const QString &executable); void setCommandLineArguments(const QString &commandLineArguments); @@ -140,7 +140,7 @@ private: RunMode m_runMode; bool m_userSetName; QString m_userName; - QList m_userEnvironmentChanges; + QList m_userEnvironmentChanges; BaseEnvironmentBase m_baseEnvironmentBase; ProjectExplorer::BuildConfiguration *m_lastActiveBuildConfiguration; }; diff --git a/src/plugins/projectexplorer/debugginghelper.cpp b/src/plugins/projectexplorer/debugginghelper.cpp index 235262577d7..8320771dbf6 100644 --- a/src/plugins/projectexplorer/debugginghelper.cpp +++ b/src/plugins/projectexplorer/debugginghelper.cpp @@ -43,7 +43,7 @@ using namespace ProjectExplorer; -QString DebuggingHelperLibrary::findSystemQt(const Environment &env) +QString DebuggingHelperLibrary::findSystemQt(const Utils::Environment &env) { QStringList paths = env.path(); foreach (const QString &path, paths) { @@ -194,7 +194,7 @@ QString DebuggingHelperLibrary::copyDebuggingHelperLibrary(const QString &qtInst QString DebuggingHelperLibrary::buildDebuggingHelperLibrary(const QString &directory, const QString &makeCommand, const QString &qmakeCommand, const QString &mkspec, - const Environment &env, const QString &targetMode) + const Utils::Environment &env, const QString &targetMode) { QString output; const QChar newline = QLatin1Char('\n'); diff --git a/src/plugins/projectexplorer/debugginghelper.h b/src/plugins/projectexplorer/debugginghelper.h index ddb6a296b88..3121b66eea7 100644 --- a/src/plugins/projectexplorer/debugginghelper.h +++ b/src/plugins/projectexplorer/debugginghelper.h @@ -30,9 +30,10 @@ #ifndef DEBUGGINGHELPER_H #define DEBUGGINGHELPER_H -#include "environment.h" #include "projectexplorer_export.h" +#include + #include #include @@ -42,7 +43,7 @@ class PROJECTEXPLORER_EXPORT DebuggingHelperLibrary public: // returns the full path to the first qmake, qmake-qt4, qmake4 that has // at least version 2.0.0 and thus is a qt4 qmake - static QString findSystemQt(const Environment &env); + static QString findSystemQt(const Utils::Environment &env); // returns something like qmake4, qmake, qmake-qt4 or whatever distributions have chosen (used by QtVersion) static QStringList possibleQMakeCommands(); // return true if the qmake at qmakePath is qt4 (used by QtVersion) @@ -53,7 +54,7 @@ public: // Build the helpers and return the output log/errormessage. static QString buildDebuggingHelperLibrary(const QString &directory, const QString &makeCommand, - const QString &qmakeCommand, const QString &mkspec, const Environment &env, const QString &targetMode); + const QString &qmakeCommand, const QString &mkspec, const Utils::Environment &env, const QString &targetMode); // Copy the source files to a target location and return the chosen target location. static QString copyDebuggingHelperLibrary(const QString &qtInstallData, QString *errorMessage); diff --git a/src/plugins/projectexplorer/deployconfiguration.h b/src/plugins/projectexplorer/deployconfiguration.h index 95dca80f8d8..e03a2ee4f48 100644 --- a/src/plugins/projectexplorer/deployconfiguration.h +++ b/src/plugins/projectexplorer/deployconfiguration.h @@ -31,7 +31,8 @@ #define PROJECTEXPLORER_DEPLOYCONFIGURATION_H #include "projectexplorer_export.h" -#include "environment.h" + +#include "projectconfiguration.h" #include "namedwidget.h" #include @@ -39,8 +40,6 @@ #include #include -#include "projectconfiguration.h" - namespace ProjectExplorer { class BuildStepList; diff --git a/src/plugins/projectexplorer/environment.cpp b/src/plugins/projectexplorer/environment.cpp deleted file mode 100644 index d1363c519e9..00000000000 --- a/src/plugins/projectexplorer/environment.cpp +++ /dev/null @@ -1,443 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** Commercial Usage -** -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. -** -** GNU Lesser General Public License Usage -** -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at http://qt.nokia.com/contact. -** -**************************************************************************/ - -#include "environment.h" - -#include -#include -#include - -using namespace ProjectExplorer; - -QList EnvironmentItem::fromStringList(QStringList list) -{ - QList result; - foreach (const QString &string, list) { - int pos = string.indexOf(QLatin1Char('=')); - if (pos == -1) { - EnvironmentItem item(string, QString()); - item.unset = true; - result.append(item); - } else { - EnvironmentItem item(string.left(pos), string.mid(pos+1)); - result.append(item); - } - } - return result; -} - -QStringList EnvironmentItem::toStringList(QList list) -{ - QStringList result; - foreach (const EnvironmentItem &item, list) { - if (item.unset) - result << QString(item.name); - else - result << QString(item.name + '=' + item.value); - } - return result; -} - -Environment::Environment() -{ -} - -Environment::Environment(QStringList env) -{ - foreach (const QString &s, env) { - int i = s.indexOf("="); - if (i >= 0) { -#ifdef Q_OS_WIN - m_values.insert(s.left(i).toUpper(), s.mid(i+1)); -#else - m_values.insert(s.left(i), s.mid(i+1)); -#endif - } - } -} - -QStringList Environment::toStringList() const -{ - QStringList result; - const QMap::const_iterator end = m_values.constEnd(); - for (QMap::const_iterator it = m_values.constBegin(); it != end; ++it) { - QString entry = it.key(); - entry += QLatin1Char('='); - entry += it.value(); - result.push_back(entry); - } - return result; -} - -void Environment::set(const QString &key, const QString &value) -{ -#ifdef Q_OS_WIN - QString _key = key.toUpper(); -#else - const QString &_key = key; -#endif - m_values.insert(_key, value); -} - -void Environment::unset(const QString &key) -{ -#ifdef Q_OS_WIN - QString _key = key.toUpper(); -#else - const QString &_key = key; -#endif - m_values.remove(_key); -} - -void Environment::appendOrSet(const QString &key, const QString &value, const QString &sep) -{ -#ifdef Q_OS_WIN - QString _key = key.toUpper(); -#else - const QString &_key = key; -#endif - QMap::iterator it = m_values.find(key); - if (it == m_values.end()) { - m_values.insert(_key, value); - } else { - // Append unless it is already there - const QString toAppend = sep + value; - if (!it.value().endsWith(toAppend)) - it.value().append(toAppend); - } -} - -void Environment::prependOrSet(const QString&key, const QString &value, const QString &sep) -{ -#ifdef Q_OS_WIN - QString _key = key.toUpper(); -#else - const QString &_key = key; -#endif - QMap::iterator it = m_values.find(key); - if (it == m_values.end()) { - m_values.insert(_key, value); - } else { - // Prepend unless it is already there - const QString toPrepend = value + sep; - if (!it.value().startsWith(toPrepend)) - it.value().prepend(toPrepend); - } -} - -void Environment::appendOrSetPath(const QString &value) -{ -#ifdef Q_OS_WIN - const QChar sep = QLatin1Char(';'); -#else - const QChar sep = QLatin1Char(':'); -#endif - appendOrSet(QLatin1String("PATH"), QDir::toNativeSeparators(value), QString(sep)); -} - -void Environment::prependOrSetPath(const QString &value) -{ -#ifdef Q_OS_WIN - const QChar sep = QLatin1Char(';'); -#else - const QChar sep = QLatin1Char(':'); -#endif - prependOrSet(QLatin1String("PATH"), QDir::toNativeSeparators(value), QString(sep)); -} - -Environment Environment::systemEnvironment() -{ - return Environment(QProcess::systemEnvironment()); -} - -void Environment::clear() -{ - m_values.clear(); -} - -QString Environment::searchInPath(QString executable) const -{ -// qDebug()<<"looking for "<::const_iterator it = m_values.constFind(name); - if (it == m_values.constEnd()) - return constEnd(); - else - return it; -} - -int Environment::size() const -{ - return m_values.size(); -} - -void Environment::modify(const QList & list) -{ - Environment resultEnvironment = *this; - foreach (const EnvironmentItem &item, list) { - if (item.unset) { - resultEnvironment.unset(item.name); - } else { - // TODO use variable expansion - QString value = item.value; - for (int i=0; i < value.size(); ++i) { - if (value.at(i) == QLatin1Char('$')) { - if ((i + 1) < value.size()) { - const QChar &c = value.at(i+1); - int end = -1; - if (c == '(') - end = value.indexOf(')', i); - else if (c == '{') - end = value.indexOf('}', i); - if (end != -1) { - const QString &name = value.mid(i+2, end-i-2); - Environment::const_iterator it = find(name); - if (it != constEnd()) - value.replace(i, end-i+1, it.value()); - } - } - } - } - resultEnvironment.set(item.name, value); - } - } - *this = resultEnvironment; -} - -bool Environment::hasKey(const QString &key) -{ - return m_values.contains(key); -} - -bool Environment::operator!=(const Environment &other) const -{ - return !(*this == other); -} - -bool Environment::operator==(const Environment &other) const -{ - return m_values == other.m_values; -} - -QStringList Environment::parseCombinedArgString(const QString &program) -{ - QStringList args; - QString tmp; - int quoteCount = 0; - bool inQuote = false; - - // handle quoting. tokens can be surrounded by double quotes - // "hello world". three consecutive double quotes represent - // the quote character itself. - for (int i = 0; i < program.size(); ++i) { - if (program.at(i) == QLatin1Char('"')) { - ++quoteCount; - if (quoteCount == 3) { - // third consecutive quote - quoteCount = 0; - tmp += program.at(i); - } - continue; - } - if (quoteCount) { - if (quoteCount == 1) - inQuote = !inQuote; - quoteCount = 0; - } - if (!inQuote && program.at(i).isSpace()) { - if (!tmp.isEmpty()) { - args += tmp; - tmp.clear(); - } - } else { - tmp += program.at(i); - } - } - if (!tmp.isEmpty()) - args += tmp; - return args; -} - -QString Environment::joinArgumentList(const QStringList &arguments) -{ - QString result; - const QChar doubleQuote = QLatin1Char('"'); - foreach (QString arg, arguments) { - if (!result.isEmpty()) - result += QLatin1Char(' '); - arg.replace(QString(doubleQuote), QLatin1String("\"\"\"")); - if (arg.contains(QLatin1Char(' '))) { - arg.insert(0, doubleQuote); - arg += doubleQuote; - } - result += arg; - } - return result; -} - -enum State { BASE, VARIABLE, OPTIONALVARIABLEBRACE, STRING, STRING_ESCAPE, ESCAPE }; - -/** Expand environment variables in a string. - * - * Environment variables are accepted in the following forms: - * $SOMEVAR, ${SOMEVAR} and %SOMEVAR%. - * - * The following escape sequences are supported: - * "\$", "\\" and "\"" which will be replaced by '$', '\' and '%' - * respectively. - * - * Strings enclosed in '"' characters do not get varaibles - * substituted. Escape codes are processed though. - * - */ -QString Environment::expandVariables(const QString &input) const -{ - QString result; - QString variable; - QChar endVariable; - State state = BASE; - - int length = input.count(); - for (int i = 0; i < length; ++i) { - QChar c = input.at(i); - if (state == BASE) { - if (c == '\\') { - state = ESCAPE; - } else if (c == '$') { - state = OPTIONALVARIABLEBRACE; - variable.clear(); - endVariable = QChar(0); - } else if (c == '%') { - state = VARIABLE; - variable.clear(); - endVariable = '%'; - } else if (c == '\"') { - state = STRING; - result += c; - } else { - result += c; - } - } else if (state == VARIABLE) { - if (c == endVariable) { - result += value(variable); - state = BASE; - } else if (c.isLetterOrNumber() || c == '_') { - variable += c; - } else { - result += value(variable); - result += c; - state = BASE; - } - } else if (state == OPTIONALVARIABLEBRACE) { - if (c == '{') - endVariable = '}'; - else - variable = c; - state = VARIABLE; - } else if (state == STRING) { - if (c == '\\') { - state = STRING_ESCAPE; - } else if (c == '\"') { - state = BASE; - result += c; - } else { - result += c; - } - } else if (state == STRING_ESCAPE) { - result += c; - state = STRING; - } else if (state == ESCAPE){ - result += c; - state = BASE; - } - } - if (state == VARIABLE) - result += value(variable); - return result; -} diff --git a/src/plugins/projectexplorer/environment.h b/src/plugins/projectexplorer/environment.h deleted file mode 100644 index 41b2ac27706..00000000000 --- a/src/plugins/projectexplorer/environment.h +++ /dev/null @@ -1,108 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** Commercial Usage -** -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. -** -** GNU Lesser General Public License Usage -** -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at http://qt.nokia.com/contact. -** -**************************************************************************/ - -#ifndef ENVIRONMENT_H -#define ENVIRONMENT_H - -#include "projectexplorer_export.h" - -#include -#include -#include -#include - -namespace ProjectExplorer { - -struct PROJECTEXPLORER_EXPORT EnvironmentItem -{ - EnvironmentItem(QString n, QString v) - : name(n), value(v), unset(false) - {} - - QString name; - QString value; - bool unset; - - bool operator==(const EnvironmentItem &other) - { - return (unset == other.unset) && (name == other.name) && (value == other.value); - } - - static QList fromStringList(QStringList list); - static QStringList toStringList(QList list); -}; - -class PROJECTEXPLORER_EXPORT Environment { -public: - typedef QMap::const_iterator const_iterator; - - Environment(); - explicit Environment(QStringList env); - static Environment systemEnvironment(); - - QStringList toStringList() const; - QString value(const QString &key) const; - void set(const QString &key, const QString &value); - void unset(const QString &key); - void modify(const QList & list); - bool hasKey(const QString &key); - - void appendOrSet(const QString &key, const QString &value, const QString &sep = QString()); - void prependOrSet(const QString &key, const QString &value, const QString &sep = QString()); - - void appendOrSetPath(const QString &value); - void prependOrSetPath(const QString &value); - - void clear(); - int size() const; - - Environment::const_iterator find(const QString &name); - QString key(Environment::const_iterator it) const; - QString value(Environment::const_iterator it) const; - - Environment::const_iterator constBegin() const; - Environment::const_iterator constEnd() const; - - QString searchInPath(QString executable) const; - QStringList path() const; - - static QStringList parseCombinedArgString(const QString &program); - static QString joinArgumentList(const QStringList &arguments); - - QString expandVariables(const QString &) const; - - bool operator!=(const Environment &other) const; - bool operator==(const Environment &other) const; -private: - QMap m_values; -}; - -} // namespace ProjectExplorer - -#endif // ENVIRONMENT_H diff --git a/src/plugins/projectexplorer/environmenteditmodel.cpp b/src/plugins/projectexplorer/environmenteditmodel.cpp index 4f8ee9af459..3339927ca1a 100644 --- a/src/plugins/projectexplorer/environmenteditmodel.cpp +++ b/src/plugins/projectexplorer/environmenteditmodel.cpp @@ -28,9 +28,9 @@ **************************************************************************/ #include "environmenteditmodel.h" -#include "environment.h" #include +#include #include #include @@ -64,7 +64,7 @@ public: QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; QModelIndex addVariable(); - QModelIndex addVariable(const EnvironmentItem &item); + QModelIndex addVariable(const Utils::EnvironmentItem &item); void resetVariable(const QString &name); void unsetVariable(const QString &name); bool canUnset(const QString &name); @@ -72,9 +72,9 @@ public: QString indexToVariable(const QModelIndex &index) const; QModelIndex variableToIndex(const QString &name) const; bool changes(const QString &key) const; - void setBaseEnvironment(const ProjectExplorer::Environment &env); - QList userChanges() const; - void setUserChanges(QList list); + void setBaseEnvironment(const Utils::Environment &env); + QList userChanges() const; + void setUserChanges(QList list); signals: void userChangesChanged(); @@ -89,9 +89,9 @@ private: int findInResultInsertPosition(const QString &name) const; int findInResult(const QString &name) const; - ProjectExplorer::Environment m_baseEnvironment; - ProjectExplorer::Environment m_resultEnvironment; - QList m_items; + Utils::Environment m_baseEnvironment; + Utils::Environment m_resultEnvironment; + QList m_items; }; QString EnvironmentModel::indexToVariable(const QModelIndex &index) const @@ -105,14 +105,14 @@ void EnvironmentModel::updateResultEnvironment() m_resultEnvironment.modify(m_items); // Add removed variables again and mark them as "" so // that the user can actually see those removals: - foreach (const EnvironmentItem &item, m_items) { + foreach (const Utils::EnvironmentItem &item, m_items) { if (item.unset) { m_resultEnvironment.set(item.name, tr("")); } } } -void EnvironmentModel::setBaseEnvironment(const ProjectExplorer::Environment &env) +void EnvironmentModel::setBaseEnvironment(const Utils::Environment &env) { if (m_baseEnvironment == env) return; @@ -206,7 +206,7 @@ QModelIndex EnvironmentModel::variableToIndex(const QString &name) const int EnvironmentModel::findInResult(const QString &name) const { - Environment::const_iterator it; + Utils::Environment::const_iterator it; int i = 0; for (it = m_resultEnvironment.constBegin(); it != m_resultEnvironment.constEnd(); ++it, ++i) if (m_resultEnvironment.key(it) == name) @@ -216,7 +216,7 @@ int EnvironmentModel::findInResult(const QString &name) const int EnvironmentModel::findInResultInsertPosition(const QString &name) const { - Environment::const_iterator it; + Utils::Environment::const_iterator it; int i = 0; for (it = m_resultEnvironment.constBegin(); it != m_resultEnvironment.constEnd(); ++it, ++i) if (m_resultEnvironment.key(it) > name) @@ -248,7 +248,7 @@ bool EnvironmentModel::setData(const QModelIndex &index, const QVariant &value, if (m_resultEnvironment.hasKey(newName)) return false; - EnvironmentItem newVariable(newName, oldValue); + Utils::EnvironmentItem newVariable(newName, oldValue); if (changesPos != -1) resetVariable(oldName); // restore the original base variable again @@ -271,7 +271,7 @@ bool EnvironmentModel::setData(const QModelIndex &index, const QVariant &value, } } else { // Add a new change item: - m_items.append(EnvironmentItem(oldName, stringValue)); + m_items.append(Utils::EnvironmentItem(oldName, stringValue)); } updateResultEnvironment(); emit dataChanged(index, index); @@ -283,13 +283,13 @@ bool EnvironmentModel::setData(const QModelIndex &index, const QVariant &value, QModelIndex EnvironmentModel::addVariable() { - return addVariable(EnvironmentItem(tr("", - "Name when inserting a new variable"), - tr("", - "Value when inserting a new variable"))); + //: Name when inserting a new variable + return addVariable(Utils::EnvironmentItem(tr(""), + //: Value when inserting a new variable + tr(""))); } -QModelIndex EnvironmentModel::addVariable(const EnvironmentItem &item) +QModelIndex EnvironmentModel::addVariable(const Utils::EnvironmentItem &item) { int insertPos = findInResultInsertPosition(item.name); @@ -365,7 +365,7 @@ void EnvironmentModel::unsetVariable(const QString &name) emit userChangesChanged(); return; } - EnvironmentItem item(name, QString()); + Utils::EnvironmentItem item(name, QString()); item.unset = true; m_items.append(item); updateResultEnvironment(); @@ -387,12 +387,12 @@ bool EnvironmentModel::canReset(const QString &name) return m_baseEnvironment.hasKey(name); } -QList EnvironmentModel::userChanges() const +QList EnvironmentModel::userChanges() const { return m_items; } -void EnvironmentModel::setUserChanges(QList list) +void EnvironmentModel::setUserChanges(QList list) { // We assume nobody is reordering the items here. if (list == m_items) @@ -517,7 +517,7 @@ void EnvironmentWidget::focusIndex(const QModelIndex &index) d->m_environmentView->setFocus(); } -void EnvironmentWidget::setBaseEnvironment(const ProjectExplorer::Environment &env) +void EnvironmentWidget::setBaseEnvironment(const Utils::Environment &env) { d->m_model->setBaseEnvironment(env); } @@ -528,12 +528,12 @@ void EnvironmentWidget::setBaseEnvironmentText(const QString &text) updateSummaryText(); } -QList EnvironmentWidget::userChanges() const +QList EnvironmentWidget::userChanges() const { return d->m_model->userChanges(); } -void EnvironmentWidget::setUserChanges(const QList &list) +void EnvironmentWidget::setUserChanges(const QList &list) { d->m_model->setUserChanges(list); updateSummaryText(); @@ -542,8 +542,8 @@ void EnvironmentWidget::setUserChanges(const QList &list) void EnvironmentWidget::updateSummaryText() { QString text; - const QList &list = d->m_model->userChanges(); - foreach (const EnvironmentItem &item, list) { + const QList &list = d->m_model->userChanges(); + foreach (const Utils::EnvironmentItem &item, list) { if (item.name != EnvironmentModel::tr("")) { text.append("
"); if (item.unset) diff --git a/src/plugins/projectexplorer/environmenteditmodel.h b/src/plugins/projectexplorer/environmenteditmodel.h index 7e256c9c87b..2bb324d8b7f 100644 --- a/src/plugins/projectexplorer/environmenteditmodel.h +++ b/src/plugins/projectexplorer/environmenteditmodel.h @@ -36,10 +36,13 @@ QT_FORWARD_DECLARE_CLASS(QModelIndex) +namespace Utils { +class Environment; +class EnvironmentItem; +} + namespace ProjectExplorer { struct EnvironmentWidgetPrivate; -class Environment; -struct EnvironmentItem; class PROJECTEXPLORER_EXPORT EnvironmentWidget : public QWidget { @@ -49,10 +52,10 @@ public: virtual ~EnvironmentWidget(); void setBaseEnvironmentText(const QString &text); - void setBaseEnvironment(const ProjectExplorer::Environment &env); + void setBaseEnvironment(const Utils::Environment &env); - QList userChanges() const; - void setUserChanges(const QList &list); + QList userChanges() const; + void setUserChanges(const QList &list); signals: void userChangesChanged(); diff --git a/src/plugins/projectexplorer/foldernavigationwidget.cpp b/src/plugins/projectexplorer/foldernavigationwidget.cpp index 624a095884f..217d89173da 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.cpp +++ b/src/plugins/projectexplorer/foldernavigationwidget.cpp @@ -30,7 +30,6 @@ #include "foldernavigationwidget.h" #include "projectexplorer.h" #include "projectexplorerconstants.h" -#include "environment.h" #include #include @@ -38,6 +37,7 @@ #include #include +#include #include #include #include @@ -391,7 +391,7 @@ void FolderNavigationWidget::showInGraphicalShell(QWidget *parent, const QString { // Mac, Windows support folder or file. #if defined(Q_OS_WIN) - const QString explorer = Environment::systemEnvironment().searchInPath(QLatin1String("explorer.exe")); + const QString explorer = Utils::Environment::systemEnvironment().searchInPath(QLatin1String("explorer.exe")); if (explorer.isEmpty()) { QMessageBox::warning(parent, tr("Launching Windows Explorer Failed"), diff --git a/src/plugins/projectexplorer/processstep.h b/src/plugins/projectexplorer/processstep.h index beca8037698..e6c865cc148 100644 --- a/src/plugins/projectexplorer/processstep.h +++ b/src/plugins/projectexplorer/processstep.h @@ -96,7 +96,7 @@ private: QString m_command; QStringList m_arguments; QString m_workingDirectory; - Environment m_env; + Utils::Environment m_env; bool m_enabled; }; diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro index cb353c7fbe3..2b395948d5f 100644 --- a/src/plugins/projectexplorer/projectexplorer.pro +++ b/src/plugins/projectexplorer/projectexplorer.pro @@ -47,7 +47,6 @@ HEADERS += projectexplorer.h \ allprojectsfind.h \ buildstep.h \ buildconfiguration.h \ - environment.h \ iprojectproperties.h \ buildsettingspropertiespage.h \ environmenteditmodel.h \ @@ -126,7 +125,6 @@ SOURCES += projectexplorer.cpp \ pluginfilefactory.cpp \ buildstep.cpp \ buildconfiguration.cpp \ - environment.cpp \ buildsettingspropertiespage.cpp \ environmenteditmodel.cpp \ processstep.cpp \ diff --git a/src/plugins/projectexplorer/target.h b/src/plugins/projectexplorer/target.h index 57318be67b8..6775f2343e8 100644 --- a/src/plugins/projectexplorer/target.h +++ b/src/plugins/projectexplorer/target.h @@ -35,10 +35,12 @@ QT_FORWARD_DECLARE_CLASS(QIcon) -namespace ProjectExplorer { +namespace Utils { +class Environment; +} +namespace ProjectExplorer { class RunConfiguration; -class Environment; class BuildConfiguration; class DeployConfiguration; class IBuildConfigurationFactory; diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp index 8cc23b42150..f680c5a8ce4 100644 --- a/src/plugins/projectexplorer/toolchain.cpp +++ b/src/plugins/projectexplorer/toolchain.cpp @@ -224,14 +224,14 @@ static QByteArray gccPredefinedMacros(const QString &gcc, const QStringList &env QByteArray GccToolChain::predefinedMacros() { if (m_predefinedMacros.isEmpty()) { - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); addToEnvironment(env); m_predefinedMacros = gccPredefinedMacros(m_gcc, env.toStringList()); } return m_predefinedMacros; } -static QList gccSystemHeaderPaths(const QString &gcc, ProjectExplorer::Environment env) +static QList gccSystemHeaderPaths(const QString &gcc, Utils::Environment env) { QList systemHeaderPaths; QStringList arguments; @@ -300,14 +300,14 @@ static QList gccSystemHeaderPaths(const QString &gcc, ProjectExplore QList GccToolChain::systemHeaderPaths() { if (m_systemHeaderPaths.isEmpty()) { - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); addToEnvironment(env); m_systemHeaderPaths = gccSystemHeaderPaths(m_gcc, env); } return m_systemHeaderPaths; } -void GccToolChain::addToEnvironment(ProjectExplorer::Environment &env) +void GccToolChain::addToEnvironment(Utils::Environment &env) { Q_UNUSED(env) } @@ -344,7 +344,7 @@ bool MinGWToolChain::equals(const ToolChain *other) const return (m_mingwPath == o->m_mingwPath && this->GccToolChain::equals(other)); } -void MinGWToolChain::addToEnvironment(ProjectExplorer::Environment &env) +void MinGWToolChain::addToEnvironment(Utils::Environment &env) { if (debug) qDebug() << "MinGWToolChain::addToEnvironment" << m_mingwPath; @@ -696,7 +696,7 @@ static QByteArray msvcPredefinedMacros(const QStringList &env) QByteArray MSVCToolChain::predefinedMacros() { if (m_predefinedMacros.isEmpty()) { - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); addToEnvironment(env); m_predefinedMacros = msvcPredefinedMacros(env.toStringList()); } @@ -706,7 +706,7 @@ QByteArray MSVCToolChain::predefinedMacros() QList MSVCToolChain::systemHeaderPaths() { //TODO fix this code - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); addToEnvironment(env); QList headerPaths; foreach(const QString &path, env.value("INCLUDE").split(QLatin1Char(';'))) { @@ -717,7 +717,7 @@ QList MSVCToolChain::systemHeaderPaths() MSVCToolChain::StringStringPairList MSVCToolChain::readEnvironmentSetting(const QString &varsBat, const QStringList &args, - const ProjectExplorer::Environment &env) + const Utils::Environment &env) { const StringStringPairList rc = readEnvironmentSettingI(varsBat, args, env); if (debug) { @@ -736,7 +736,7 @@ MSVCToolChain::StringStringPairList MSVCToolChain::readEnvironmentSetting(const // Windows: Expand the delayed evaluation references returned by the // SDK setup scripts: "PATH=!Path!;foo". Some values might expand // to empty and should not be added -static inline QString winExpandDelayedEnvReferences(QString in, const ProjectExplorer::Environment &env) +static inline QString winExpandDelayedEnvReferences(QString in, const Utils::Environment &env) { const QChar exclamationMark = QLatin1Char('!'); for (int pos = 0; pos < in.size(); ) { @@ -757,7 +757,7 @@ static inline QString winExpandDelayedEnvReferences(QString in, const ProjectExp MSVCToolChain::StringStringPairList MSVCToolChain::readEnvironmentSettingI(const QString &varsBat, const QStringList &args, - const ProjectExplorer::Environment &env) + const Utils::Environment &env) { // Run the setup script and extract the variables if (!QFileInfo(varsBat).exists()) @@ -818,7 +818,7 @@ MSVCToolChain::StringStringPairList MSVCToolChain::readEnvironmentSettingI(const return rc; } -void MSVCToolChain::addToEnvironment(ProjectExplorer::Environment &env) +void MSVCToolChain::addToEnvironment(Utils::Environment &env) { if (debug) qDebug() << "MSVCToolChain::addToEnvironment" << m_installation.name; @@ -890,7 +890,7 @@ QByteArray WinCEToolChain::predefinedMacros() QList WinCEToolChain::systemHeaderPaths() { //TODO fix this code - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); addToEnvironment(env); QList headerPaths; @@ -905,7 +905,7 @@ QList WinCEToolChain::systemHeaderPaths() return headerPaths; } -void WinCEToolChain::addToEnvironment(ProjectExplorer::Environment &env) +void WinCEToolChain::addToEnvironment(Utils::Environment &env) { MSVCToolChain::addToEnvironment(env); QSettings registry(MSVC_RegKey, QSettings::NativeFormat); diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h index 1aa23415453..7a633611c80 100644 --- a/src/plugins/projectexplorer/toolchain.h +++ b/src/plugins/projectexplorer/toolchain.h @@ -31,7 +31,8 @@ #define TOOLCHAIN_H #include "projectexplorer_export.h" -#include "environment.h" + +#include #include #include @@ -39,7 +40,6 @@ namespace ProjectExplorer { -class Environment; class IOutputParser; class Project; @@ -95,7 +95,7 @@ public: virtual QByteArray predefinedMacros() = 0; virtual QList systemHeaderPaths() = 0; - virtual void addToEnvironment(ProjectExplorer::Environment &env) = 0; + virtual void addToEnvironment(Utils::Environment &env) = 0; virtual ToolChainType type() const = 0; virtual QString makeCommand() const = 0; virtual IOutputParser *outputParser() const = 0; @@ -126,7 +126,7 @@ public: GccToolChain(const QString &gcc); virtual QByteArray predefinedMacros(); virtual QList systemHeaderPaths(); - virtual void addToEnvironment(ProjectExplorer::Environment &env); + virtual void addToEnvironment(Utils::Environment &env); virtual ToolChainType type() const; virtual QString makeCommand() const; virtual IOutputParser *outputParser() const; @@ -146,7 +146,7 @@ class PROJECTEXPLORER_EXPORT MinGWToolChain : public GccToolChain { public: MinGWToolChain(const QString &gcc, const QString &mingwPath); - virtual void addToEnvironment(ProjectExplorer::Environment &env); + virtual void addToEnvironment(Utils::Environment &env); virtual ToolChainType type() const; virtual QString makeCommand() const; virtual IOutputParser *outputParser() const; @@ -205,7 +205,7 @@ public: bool amd64 = false); virtual QByteArray predefinedMacros(); virtual QList systemHeaderPaths(); - virtual void addToEnvironment(ProjectExplorer::Environment &env); + virtual void addToEnvironment(Utils::Environment &env); virtual ToolChainType type() const; virtual QString makeCommand() const; virtual IOutputParser *outputParser() const; @@ -219,7 +219,7 @@ protected: virtual bool equals(const ToolChain *other) const; static StringStringPairList readEnvironmentSetting(const QString &varsBat, const QStringList &args, - const ProjectExplorer::Environment &env); + const Utils::Environment &env); QByteArray m_predefinedMacros; const Installation m_installation; @@ -227,11 +227,11 @@ protected: private: static StringStringPairList readEnvironmentSettingI(const QString &varsBat, const QStringList &args, - const ProjectExplorer::Environment &env); + const Utils::Environment &env); mutable StringStringPairList m_values; mutable bool m_valuesSet; - mutable ProjectExplorer::Environment m_lastEnvironment; + mutable Utils::Environment m_lastEnvironment; }; PROJECTEXPLORER_EXPORT QDebug operator<<(QDebug in, const MSVCToolChain::Installation &i); @@ -244,7 +244,7 @@ public: virtual QByteArray predefinedMacros(); virtual QList systemHeaderPaths(); - virtual void addToEnvironment(ProjectExplorer::Environment &env); + virtual void addToEnvironment(Utils::Environment &env); virtual ToolChainType type() const; protected: diff --git a/src/plugins/qmljseditor/qmljspreviewrunner.cpp b/src/plugins/qmljseditor/qmljspreviewrunner.cpp index bd22e9c9d5d..585b2e3b18c 100644 --- a/src/plugins/qmljseditor/qmljspreviewrunner.cpp +++ b/src/plugins/qmljseditor/qmljspreviewrunner.cpp @@ -29,7 +29,7 @@ #include "qmljspreviewrunner.h" -#include +#include #include #include @@ -49,7 +49,7 @@ QmlJSPreviewRunner::QmlJSPreviewRunner(QObject *parent) : + QString(qgetenv("PATH")); m_qmlViewerDefaultPath = Utils::SynchronousProcess::locateBinary(searchPath, QLatin1String("qmlviewer")); - ProjectExplorer::Environment environment = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment environment = Utils::Environment::systemEnvironment(); m_applicationLauncher.setEnvironment(environment.toStringList()); } diff --git a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp index f55bbd12fae..8c6d4bfb40a 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp @@ -32,9 +32,9 @@ #include "qmlprojectconstants.h" #include #include -#include #include #include +#include #include #include @@ -56,7 +56,7 @@ namespace Internal { QmlRunControl::QmlRunControl(QmlProjectRunConfiguration *runConfiguration, QString mode) : RunControl(runConfiguration, mode) { - ProjectExplorer::Environment environment = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment environment = Utils::Environment::systemEnvironment(); m_applicationLauncher.setEnvironment(environment.toStringList()); m_applicationLauncher.setWorkingDirectory(runConfiguration->workingDirectory()); @@ -173,7 +173,7 @@ QWidget *QmlRunControlFactory::createConfigurationWidget(RunConfiguration *runCo ProjectExplorer::RunControl *QmlRunControlFactory::createDebugRunControl(QmlProjectRunConfiguration *runConfig) { - ProjectExplorer::Environment environment = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment environment = Utils::Environment::systemEnvironment(); Debugger::DebuggerStartParameters params; params.startMode = Debugger::StartInternal; params.executable = runConfig->viewerPath(); diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp index ed093269c5d..4a42a65633f 100644 --- a/src/plugins/qt4projectmanager/makestep.cpp +++ b/src/plugins/qt4projectmanager/makestep.cpp @@ -46,7 +46,6 @@ #include #include -using ProjectExplorer::Environment; using ExtensionSystem::PluginManager; using namespace Qt4ProjectManager; using namespace Qt4ProjectManager::Internal; @@ -122,7 +121,7 @@ bool MakeStep::fromMap(const QVariantMap &map) bool MakeStep::init() { Qt4BuildConfiguration *bc = qt4BuildConfiguration(); - Environment environment = bc->environment(); + Utils::Environment environment = bc->environment(); setEnvironment(environment); QString workingDirectory; @@ -284,7 +283,7 @@ void MakeStepConfigWidget::updateDetails() if (!m_makeStep->m_makeCmd.isEmpty()) makeCmd = m_makeStep->m_makeCmd; if (!QFileInfo(makeCmd).isAbsolute()) { - Environment environment = bc->environment(); + Utils::Environment environment = bc->environment(); // Try to detect command in environment const QString tmp = environment.searchInPath(makeCmd); if (tmp.isEmpty()) { @@ -328,7 +327,7 @@ void MakeStepConfigWidget::userArgumentsChanged() if (m_ignoreChange) return; const QStringList &makeArguments = m_makeStep->userArguments(); - m_ui->makeArgumentsLineEdit->setText(ProjectExplorer::Environment::joinArgumentList(makeArguments)); + m_ui->makeArgumentsLineEdit->setText(Utils::Environment::joinArgumentList(makeArguments)); updateDetails(); } @@ -340,7 +339,7 @@ void MakeStepConfigWidget::init() m_ui->makeLineEdit->setText(makeCmd); const QStringList &makeArguments = m_makeStep->userArguments(); - m_ui->makeArgumentsLineEdit->setText(ProjectExplorer::Environment::joinArgumentList(makeArguments)); + m_ui->makeArgumentsLineEdit->setText(Utils::Environment::joinArgumentList(makeArguments)); updateDetails(); } @@ -354,7 +353,7 @@ void MakeStepConfigWidget::makeArgumentsLineEdited() { m_ignoreChange = true; m_makeStep->setUserArguments( - ProjectExplorer::Environment::parseCombinedArgString(m_ui->makeArgumentsLineEdit->text())); + Utils::Environment::parseCombinedArgString(m_ui->makeArgumentsLineEdit->text())); m_ignoreChange = false; updateDetails(); } diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 0e71f4e26a0..df002105e1e 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -329,7 +329,7 @@ QMakeStepConfigWidget::QMakeStepConfigWidget(QMakeStep *step) void QMakeStepConfigWidget::init() { - QString qmakeArgs = ProjectExplorer::Environment::joinArgumentList(m_step->userArguments()); + QString qmakeArgs = Utils::Environment::joinArgumentList(m_step->userArguments()); m_ui.qmakeAdditonalArgumentsLineEdit->setText(qmakeArgs); qmakeBuildConfigChanged(); @@ -373,7 +373,7 @@ void QMakeStepConfigWidget::userArgumentsChanged() { if (m_ignoreChange) return; - QString qmakeArgs = ProjectExplorer::Environment::joinArgumentList(m_step->userArguments()); + QString qmakeArgs = Utils::Environment::joinArgumentList(m_step->userArguments()); m_ui.qmakeAdditonalArgumentsLineEdit->setText(qmakeArgs); updateSummaryLabel(); updateEffectiveQMakeCall(); @@ -383,7 +383,7 @@ void QMakeStepConfigWidget::qmakeArgumentsLineEdited() { m_ignoreChange = true; m_step->setUserArguments( - ProjectExplorer::Environment::parseCombinedArgString(m_ui.qmakeAdditonalArgumentsLineEdit->text())); + Utils::Environment::parseCombinedArgString(m_ui.qmakeAdditonalArgumentsLineEdit->text())); m_ignoreChange = false; updateSummaryLabel(); @@ -445,7 +445,7 @@ void QMakeStepConfigWidget::updateEffectiveQMakeCall() Qt4BuildConfiguration *qt4bc = m_step->qt4BuildConfiguration(); const QtVersion *qtVersion = qt4bc->qtVersion(); QString program = QFileInfo(qtVersion->qmakeCommand()).fileName(); - m_ui.qmakeArgumentsEdit->setPlainText(program + QLatin1Char(' ') + ProjectExplorer::Environment::joinArgumentList(m_step->allArguments())); + m_ui.qmakeArgumentsEdit->setPlainText(program + QLatin1Char(' ') + Utils::Environment::joinArgumentList(m_step->allArguments())); } //// diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodebugsupport.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodebugsupport.cpp index df1202af27a..bc3938f8838 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodebugsupport.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodebugsupport.cpp @@ -312,10 +312,10 @@ int MaemoDebugSupport::qmlServerPort(const MaemoRunConfiguration *rc) QString MaemoDebugSupport::environment(const MaemoRunConfiguration *rc) { - QList env = rc->userEnvironmentChanges(); + QList env = rc->userEnvironmentChanges(); // FIXME: this must use command line argument instead: -qmljsdebugger=port:1234. if (rc->useQmlDebugger()) { -// env << EnvironmentItem(QLatin1String(Debugger::Constants::E_QML_DEBUG_SERVER_PORT), +// env << Utils::EnvironmentItem(QLatin1String(Debugger::Constants::E_QML_DEBUG_SERVER_PORT), // QString::number(qmlServerPort(rc))); } return MaemoGlobal::remoteEnvironment(env); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceenvreader.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceenvreader.cpp index b562aea94ce..0ea53fa3696 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceenvreader.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceenvreader.cpp @@ -93,7 +93,7 @@ void MaemoDeviceEnvReader::setEnvironment() { if (m_remoteOutput.isEmpty()) return; - m_env = ProjectExplorer::Environment(m_remoteOutput.split(QLatin1Char('\n'), + m_env = Utils::Environment(m_remoteOutput.split(QLatin1Char('\n'), QString::SkipEmptyParts)); } diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceenvreader.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceenvreader.h index b8ae353d698..3d53e93ba0f 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeviceenvreader.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeviceenvreader.h @@ -37,7 +37,7 @@ #include "maemodeviceconfigurations.h" -#include +#include #include @@ -61,7 +61,7 @@ public: void start(); void stop(); - ProjectExplorer::Environment deviceEnvironment() const { return m_env; } + Utils::Environment deviceEnvironment() const { return m_env; } signals: void finished(); @@ -81,7 +81,7 @@ private slots: private: bool m_stop; QString m_remoteOutput; - ProjectExplorer::Environment m_env; + Utils::Environment m_env; MaemoDeviceConfig m_devConfig; QSharedPointer m_connection; QSharedPointer m_remoteProcess; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp index c07fd5cd59f..cbd3ebf5416 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp @@ -62,11 +62,11 @@ QString MaemoGlobal::remoteSourceProfilesCommand() return QString::fromAscii(remoteCall); } -QString MaemoGlobal::remoteEnvironment(const QList &list) +QString MaemoGlobal::remoteEnvironment(const QList &list) { QString env; QString placeHolder = QLatin1String("%1=%2 "); - foreach (const ProjectExplorer::EnvironmentItem &item, list) + foreach (const Utils::EnvironmentItem &item, list) env.append(placeHolder.arg(item.name).arg(item.value)); return env.mid(0, env.size() - 1); } diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h index 762b67c4f4e..7305dd34286 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h @@ -30,8 +30,9 @@ #ifndef MAEMOGLOBAL_H #define MAEMOGLOBAL_H +#include + #include -#include #include #include @@ -50,7 +51,7 @@ public: static QString homeDirOnDevice(const QString &uname); static QString remoteSudo(); static QString remoteCommandPrefix(const QString &commandFilePath); - static QString remoteEnvironment(const QList &list); + static QString remoteEnvironment(const QList &list); static QString remoteProjectSourcesMountPoint(); static QString remoteSourceProfilesCommand(); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp index 959cf6806d3..724d2d191e0 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp @@ -149,7 +149,7 @@ QVariantMap MaemoRunConfiguration::toMap() const map.insert(UseRemoteGdbKey, useRemoteGdb()); map.insert(BaseEnvironmentBaseKey, m_baseEnvironmentBase); map.insert(UserEnvironmentChangesKey, - ProjectExplorer::EnvironmentItem::toStringList(m_userEnvironmentChanges)); + Utils::EnvironmentItem::toStringList(m_userEnvironmentChanges)); map.unite(m_remoteMounts->toMap()); return map; } @@ -164,7 +164,7 @@ bool MaemoRunConfiguration::fromMap(const QVariantMap &map) m_proFilePath = dir.filePath(map.value(ProFileKey).toString()); m_useRemoteGdb = map.value(UseRemoteGdbKey, DefaultUseRemoteGdbValue).toBool(); m_userEnvironmentChanges = - ProjectExplorer::EnvironmentItem::fromStringList(map.value(UserEnvironmentChangesKey) + Utils::EnvironmentItem::fromStringList(map.value(UserEnvironmentChangesKey) .toStringList()); m_baseEnvironmentBase = static_cast (map.value(BaseEnvironmentBaseKey, SystemEnvironmentBase).toInt()); @@ -355,26 +355,26 @@ void MaemoRunConfiguration::setBaseEnvironmentBase(BaseEnvironmentBase env) } } -ProjectExplorer::Environment MaemoRunConfiguration::environment() const +Utils::Environment MaemoRunConfiguration::environment() const { - ProjectExplorer::Environment env = baseEnvironment(); + Utils::Environment env = baseEnvironment(); env.modify(userEnvironmentChanges()); return env; } -ProjectExplorer::Environment MaemoRunConfiguration::baseEnvironment() const +Utils::Environment MaemoRunConfiguration::baseEnvironment() const { return (m_baseEnvironmentBase == SystemEnvironmentBase ? systemEnvironment() - : ProjectExplorer::Environment()); + : Utils::Environment()); } -QList MaemoRunConfiguration::userEnvironmentChanges() const +QList MaemoRunConfiguration::userEnvironmentChanges() const { return m_userEnvironmentChanges; } void MaemoRunConfiguration::setUserEnvironmentChanges( - const QList &diff) + const QList &diff) { if (m_userEnvironmentChanges != diff) { m_userEnvironmentChanges = diff; @@ -382,12 +382,12 @@ void MaemoRunConfiguration::setUserEnvironmentChanges( } } -ProjectExplorer::Environment MaemoRunConfiguration::systemEnvironment() const +Utils::Environment MaemoRunConfiguration::systemEnvironment() const { return m_systemEnvironment; } -void MaemoRunConfiguration::setSystemEnvironment(const ProjectExplorer::Environment &environment) +void MaemoRunConfiguration::setSystemEnvironment(const Utils::Environment &environment) { if (m_systemEnvironment.size() == 0 || m_systemEnvironment != environment) { m_systemEnvironment = environment; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h index 5aee628d64c..b25848b92a4 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h @@ -34,7 +34,8 @@ #include "maemodeviceconfigurations.h" #include "maemodeployable.h" -#include +#include + #include #include @@ -106,14 +107,14 @@ public: BaseEnvironmentBase baseEnvironmentBase() const; void setBaseEnvironmentBase(BaseEnvironmentBase env); - ProjectExplorer::Environment environment() const; - ProjectExplorer::Environment baseEnvironment() const; + Utils::Environment environment() const; + Utils::Environment baseEnvironment() const; - QList userEnvironmentChanges() const; - void setUserEnvironmentChanges(const QList &diff); + QList userEnvironmentChanges() const; + void setUserEnvironmentChanges(const QList &diff); - ProjectExplorer::Environment systemEnvironment() const; - void setSystemEnvironment(const ProjectExplorer::Environment &environment); + Utils::Environment systemEnvironment() const; + void setSystemEnvironment(const Utils::Environment &environment); int portsUsedByDebuggers() const { return useCppDebugger() + useQmlDebugger(); } @@ -123,7 +124,7 @@ signals: void baseEnvironmentChanged(); void systemEnvironmentChanged(); - void userEnvironmentChangesChanged(const QList &diff); + void userEnvironmentChangesChanged(const QList &diff); protected: MaemoRunConfiguration(Qt4Target *parent, MaemoRunConfiguration *source); @@ -146,8 +147,8 @@ private: bool m_useRemoteGdb; BaseEnvironmentBase m_baseEnvironmentBase; - ProjectExplorer::Environment m_systemEnvironment; - QList m_userEnvironmentChanges; + Utils::Environment m_systemEnvironment; + QList m_userEnvironmentChanges; }; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp index d732991918f..4bc9cb34c6c 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp @@ -263,8 +263,8 @@ void MaemoRunConfigurationWidget::addEnvironmentWidgets(QVBoxLayout *mainLayout) connect(m_runConfiguration, SIGNAL(systemEnvironmentChanged()), this, SLOT(systemEnvironmentChanged())); connect(m_runConfiguration, - SIGNAL(userEnvironmentChangesChanged(QList)), - this, SLOT(userEnvironmentChangesChanged(QList))); + SIGNAL(userEnvironmentChangesChanged(QList)), + this, SLOT(userEnvironmentChangesChanged(QList))); connect(m_fetchEnv, SIGNAL(pressed()), this, SLOT(fetchEnvironment())); connect(m_deviceEnvReader, SIGNAL(finished()), this, SLOT(fetchEnvironmentFinished())); } @@ -421,7 +421,7 @@ void MaemoRunConfigurationWidget::systemEnvironmentChanged() m_environmentWidget->setBaseEnvironment(m_runConfiguration->systemEnvironment()); } -void MaemoRunConfigurationWidget::userEnvironmentChangesChanged(const QList &userChanges) +void MaemoRunConfigurationWidget::userEnvironmentChangesChanged(const QList &userChanges) { if (m_ignoreChange) return; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h index e27bada0823..2fb92edefde 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.h @@ -49,9 +49,12 @@ class QToolButton; class QVBoxLayout; QT_END_NAMESPACE +namespace Utils { +class EnvironmentItem; +} + namespace ProjectExplorer { - struct EnvironmentItem; - class EnvironmentWidget; +class EnvironmentWidget; } namespace Utils { class DetailsWidget; } @@ -86,7 +89,7 @@ private slots: void baseEnvironmentSelected(int index); void baseEnvironmentChanged(); void systemEnvironmentChanged(); - void userEnvironmentChangesChanged(const QList &userChanges); + void userEnvironmentChangesChanged(const QList &userChanges); void handleRemoteMountsChanged(); void handleDebuggingTypeChanged(); void handleDeploySpecsChanged(); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp index 974387473e9..1e320b8e961 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp @@ -54,7 +54,7 @@ ToolChain::ToolChainType MaemoToolChain::type() const return ToolChain::GCC_MAEMO; } -void MaemoToolChain::addToEnvironment(ProjectExplorer::Environment &env) +void MaemoToolChain::addToEnvironment(Utils::Environment &env) { env.prependOrSetPath(QDir::toNativeSeparators(QString("%1/bin") .arg(maddeRoot()))); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h index 71a0792ab29..7589b1e2425 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h @@ -42,7 +42,7 @@ public: MaemoToolChain(const QString &targetRoot); virtual ~MaemoToolChain(); - void addToEnvironment(ProjectExplorer::Environment &env); + void addToEnvironment(Utils::Environment &env); ProjectExplorer::ToolChain::ToolChainType type() const; QString makeCommand() const; diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp index ea3d1b39f01..01bc3307d3b 100644 --- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp @@ -45,7 +45,7 @@ using namespace Qt4ProjectManager::Internal; // Locate the compiler via path. static QString gcceCommand(const QString &dir) { - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); if (!dir.isEmpty()) { env.prependOrSetPath(dir + QLatin1String("/bin")); env.prependOrSetPath(dir); @@ -123,7 +123,7 @@ QList GCCEToolChain::systemHeaderPaths() return m_systemHeaderPaths; } -void GCCEToolChain::addToEnvironment(ProjectExplorer::Environment &env) +void GCCEToolChain::addToEnvironment(Utils::Environment &env) { if (debug) qDebug() << "GCCEToolChain::addToEnvironment" << m_type << gcc() << m_gcceBinPath<< m_mixin.device(); @@ -170,7 +170,7 @@ QString GCCEToolChain::gcceVersion() const QProcess gxx; QStringList arguments; arguments << QLatin1String("-dumpversion"); - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); env.set(QLatin1String("LC_ALL"), QLatin1String("C")); //override current locale settings gxx.setEnvironment(env.toStringList()); gxx.setReadChannelMode(QProcess::MergedChannels); diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h index a701454c489..9ce1228a88c 100644 --- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h +++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h @@ -50,7 +50,7 @@ public: QByteArray predefinedMacros(); virtual QList systemHeaderPaths(); - virtual void addToEnvironment(ProjectExplorer::Environment &env); + virtual void addToEnvironment(Utils::Environment &env); virtual ProjectExplorer::ToolChain::ToolChainType type() const; virtual QString makeCommand() const; diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp index eaa7a0a4e75..b72a95637a7 100644 --- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp @@ -117,7 +117,7 @@ void RVCTToolChain::updateVersion() m_minor = 0; m_build = 0; QProcess armcc; - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); addToEnvironment(env); armcc.setEnvironment(env.toStringList()); const QString binary = rvctBinary(); @@ -180,7 +180,7 @@ QList RVCTToolChain::systemHeaderPaths() { if (m_systemHeaderPaths.isEmpty()) { updateVersion(); - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); QString rvctInclude = env.value(QString::fromLatin1("RVCT%1%2INC").arg(m_major).arg(m_minor)); if (!rvctInclude.isEmpty()) m_systemHeaderPaths.append(HeaderPath(rvctInclude, HeaderPath::GlobalHeaderPath)); @@ -206,7 +206,7 @@ static inline QStringList headerPathToStringList(const QList systemHeaderPaths(); - void addToEnvironment(ProjectExplorer::Environment &env); + void addToEnvironment(Utils::Environment &env); ProjectExplorer::ToolChain::ToolChainType type() const; QString makeCommand() const; ProjectExplorer::IOutputParser *outputParser() const; @@ -60,7 +60,7 @@ protected: private: void addToRVCTPathVariable(const QString &postfix, const QStringList &values, - ProjectExplorer::Environment &env) const; + Utils::Environment &env) const; static QStringList libPaths(); void updateVersion(); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h index e69c8a8044d..8cdc5ecb91c 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h @@ -141,7 +141,7 @@ private: QStringList m_workingDirectories; QString m_makeCmd; - ProjectExplorer::Environment m_environment; + Utils::Environment m_environment; QStringList m_args; void ctor_package(); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devices.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devices.cpp index bf86f3fc341..3631c3bf577 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devices.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60devices.cpp @@ -30,7 +30,8 @@ #include "s60devices.h" #include "gccetoolchain.h" -#include +#include + #include #include @@ -563,7 +564,7 @@ QList S60ToolChainMixin::epocHeaderPaths() const return rc; } -void S60ToolChainMixin::addEpocToEnvironment(ProjectExplorer::Environment *env) const +void S60ToolChainMixin::addEpocToEnvironment(Utils::Environment *env) const { QString epocRootPath(m_device.epocRoot); if (!epocRootPath.endsWith(QChar('/'))) @@ -615,7 +616,7 @@ QList S60ToolChainMixin::gnuPocRvctHeaderPaths(int return rc; } -void S60ToolChainMixin::addGnuPocToEnvironment(ProjectExplorer::Environment *env) const +void S60ToolChainMixin::addGnuPocToEnvironment(Utils::Environment *env) const { env->prependOrSetPath(QDir::toNativeSeparators(m_device.toolsRoot + QLatin1String("/epoc32/tools"))); const QString epocRootVar = QLatin1String("EPOCROOT"); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devices.h b/src/plugins/qt4projectmanager/qt-s60/s60devices.h index 076c81184c2..69d2a1a5e1e 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devices.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60devices.h @@ -176,13 +176,13 @@ public: // Epoc QList epocHeaderPaths() const; - void addEpocToEnvironment(ProjectExplorer::Environment *env) const; + void addEpocToEnvironment(Utils::Environment *env) const; // GnuPoc QList gnuPocHeaderPaths() const; QList gnuPocRvctHeaderPaths(int major, int minor) const; QStringList gnuPocRvctLibPaths(int armver, bool debug) const; - void addGnuPocToEnvironment(ProjectExplorer::Environment *env) const; + void addGnuPocToEnvironment(Utils::Environment *env) const; bool equals(const S60ToolChainMixin &rhs) const; diff --git a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp index 7ffcdfb9840..3ffa86e413c 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60emulatorrunconfiguration.cpp @@ -296,7 +296,7 @@ S60EmulatorRunControl::S60EmulatorRunControl(S60EmulatorRunConfiguration *runCon : RunControl(runConfiguration, mode) { // stuff like the EPOCROOT and EPOCDEVICE env variable - Environment env = Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); runConfiguration->qt4Target()->activeBuildConfiguration()->toolChain()->addToEnvironment(env); m_applicationLauncher.setEnvironment(env.toStringList()); diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp index 89d0a357291..5765fc1a552 100644 --- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp @@ -71,7 +71,7 @@ QList WINSCWToolChain::systemHeaderPaths() QStringList WINSCWToolChain::systemIncludes() const { if (m_carbidePath.isEmpty()) { - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); QString symIncludesValue = env.value("MWCSYM2INCLUDES"); if (!symIncludesValue.isEmpty()) return symIncludesValue.split(QLatin1Char(';')); @@ -91,7 +91,7 @@ QStringList WINSCWToolChain::systemIncludes() const return QStringList(); } -void WINSCWToolChain::addToEnvironment(ProjectExplorer::Environment &env) +void WINSCWToolChain::addToEnvironment(Utils::Environment &env) { if (!m_carbidePath.isEmpty()) { env.set("MWCSYM2INCLUDES", systemIncludes().join(QString(QLatin1Char(';')))); diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h index 8f5fbab5fca..27edf0b53cf 100644 --- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h +++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h @@ -43,7 +43,7 @@ public: explicit WINSCWToolChain(const S60Devices::Device &device, const QString &mwcDirectory); QByteArray predefinedMacros(); QList systemHeaderPaths(); - void addToEnvironment(ProjectExplorer::Environment &env); + void addToEnvironment(Utils::Environment &env); ProjectExplorer::ToolChain::ToolChainType type() const; QString makeCommand() const; ProjectExplorer::IOutputParser *outputParser() const; diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 0517dd06a86..1b783a72338 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -194,9 +194,9 @@ Qt4Target *Qt4BuildConfiguration::qt4Target() const return static_cast(target()); } -ProjectExplorer::Environment Qt4BuildConfiguration::baseEnvironment() const +Utils::Environment Qt4BuildConfiguration::baseEnvironment() const { - Environment env = BuildConfiguration::baseEnvironment(); + Utils::Environment env = BuildConfiguration::baseEnvironment(); qtVersion()->addToEnvironment(env); env.set(QLatin1String("BUILDDIR"), QDir::toNativeSeparators(buildDirectory())); diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.h b/src/plugins/qt4projectmanager/qt4buildconfiguration.h index 849e0852eee..135518558c3 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.h +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.h @@ -56,7 +56,7 @@ public: Qt4Target *qt4Target() const; - virtual ProjectExplorer::Environment baseEnvironment() const; + virtual Utils::Environment baseEnvironment() const; virtual QString buildDirectory() const; bool shadowBuild() const; diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp index 0c672b20913..1ab6c4c0412 100644 --- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp @@ -201,7 +201,7 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run toplayout->addRow(tr("Executable:"), m_executableLineEdit); QLabel *argumentsLabel = new QLabel(tr("Arguments:"), this); - m_argumentsLineEdit = new QLineEdit(ProjectExplorer::Environment::joinArgumentList(qt4RunConfiguration->commandLineArguments()), this); + m_argumentsLineEdit = new QLineEdit(Utils::Environment::joinArgumentList(qt4RunConfiguration->commandLineArguments()), this); argumentsLabel->setBuddy(m_argumentsLineEdit); toplayout->addRow(argumentsLabel, m_argumentsLineEdit); @@ -313,8 +313,8 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run connect(qt4RunConfiguration, SIGNAL(effectiveTargetInformationChanged()), this, SLOT(effectiveTargetInformationChanged()), Qt::QueuedConnection); - connect(qt4RunConfiguration, SIGNAL(userEnvironmentChangesChanged(QList)), - this, SLOT(userEnvironmentChangesChanged(QList))); + connect(qt4RunConfiguration, SIGNAL(userEnvironmentChangesChanged(QList)), + this, SLOT(userEnvironmentChangesChanged(QList))); connect(qt4RunConfiguration, SIGNAL(baseEnvironmentChanged()), this, SLOT(baseEnvironmentChanged())); @@ -359,7 +359,7 @@ void Qt4RunConfigurationWidget::baseEnvironmentChanged() m_environmentWidget->setBaseEnvironmentText(m_qt4RunConfiguration->baseEnvironmentText()); } -void Qt4RunConfigurationWidget::userEnvironmentChangesChanged(const QList &userChanges) +void Qt4RunConfigurationWidget::userEnvironmentChangesChanged(const QList &userChanges) { if (m_ignoreChange) return; @@ -473,7 +473,7 @@ QVariantMap Qt4RunConfiguration::toMap() const map.insert(QLatin1String(PRO_FILE_KEY), projectDir.relativeFilePath(m_proFilePath)); map.insert(QLatin1String(USE_TERMINAL_KEY), m_runMode == Console); map.insert(QLatin1String(USE_DYLD_IMAGE_SUFFIX_KEY), m_isUsingDyldImageSuffix); - map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), ProjectExplorer::EnvironmentItem::toStringList(m_userEnvironmentChanges)); + map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), Utils::EnvironmentItem::toStringList(m_userEnvironmentChanges)); map.insert(QLatin1String(BASE_ENVIRONMENT_BASE_KEY), m_baseEnvironmentBase); map.insert(QLatin1String(USER_SET_WORKING_DIRECTORY_KEY), m_userSetWokingDirectory); map.insert(QLatin1String(USER_WORKING_DIRECTORY_KEY), m_userWorkingDirectory); @@ -491,7 +491,7 @@ bool Qt4RunConfiguration::fromMap(const QVariantMap &map) m_userSetWokingDirectory = map.value(QLatin1String(USER_SET_WORKING_DIRECTORY_KEY), false).toBool(); m_userWorkingDirectory = map.value(QLatin1String(USER_WORKING_DIRECTORY_KEY)).toString(); - m_userEnvironmentChanges = ProjectExplorer::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); + m_userEnvironmentChanges = Utils::EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList()); m_baseEnvironmentBase = static_cast(map.value(QLatin1String(BASE_ENVIRONMENT_BASE_KEY), static_cast(Qt4RunConfiguration::BuildEnvironmentBase)).toInt()); return RunConfiguration::fromMap(map); @@ -552,13 +552,13 @@ QString Qt4RunConfiguration::baseEnvironmentText() const return QString(); } -ProjectExplorer::Environment Qt4RunConfiguration::baseEnvironment() const +Utils::Environment Qt4RunConfiguration::baseEnvironment() const { - ProjectExplorer::Environment env; + Utils::Environment env; if (m_baseEnvironmentBase == Qt4RunConfiguration::CleanEnvironmentBase) { // Nothing } else if (m_baseEnvironmentBase == Qt4RunConfiguration::SystemEnvironmentBase) { - env = ProjectExplorer::Environment::systemEnvironment(); + env = Utils::Environment::systemEnvironment(); } else if (m_baseEnvironmentBase == Qt4RunConfiguration::BuildEnvironmentBase) { env = target()->activeBuildConfiguration()->environment(); } @@ -578,19 +578,19 @@ ProjectExplorer::Environment Qt4RunConfiguration::baseEnvironment() const return env; } -ProjectExplorer::Environment Qt4RunConfiguration::environment() const +Utils::Environment Qt4RunConfiguration::environment() const { - ProjectExplorer::Environment env = baseEnvironment(); + Utils::Environment env = baseEnvironment(); env.modify(userEnvironmentChanges()); return env; } -QList Qt4RunConfiguration::userEnvironmentChanges() const +QList Qt4RunConfiguration::userEnvironmentChanges() const { return m_userEnvironmentChanges; } -void Qt4RunConfiguration::setUserEnvironmentChanges(const QList &diff) +void Qt4RunConfiguration::setUserEnvironmentChanges(const QList &diff) { if (m_userEnvironmentChanges != diff) { m_userEnvironmentChanges = diff; @@ -613,7 +613,7 @@ void Qt4RunConfiguration::setWorkingDirectory(const QString &wd) void Qt4RunConfiguration::setArguments(const QString &argumentsString) { - m_commandLineArguments = ProjectExplorer::Environment::parseCombinedArgString(argumentsString); + m_commandLineArguments = Utils::Environment::parseCombinedArgString(argumentsString); emit commandLineArgumentsChanged(argumentsString); } diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.h b/src/plugins/qt4projectmanager/qt4runconfiguration.h index 9c4903404cd..92db6616005 100644 --- a/src/plugins/qt4projectmanager/qt4runconfiguration.h +++ b/src/plugins/qt4projectmanager/qt4runconfiguration.h @@ -81,7 +81,7 @@ public: virtual RunMode runMode() const; virtual QString workingDirectory() const; virtual QStringList commandLineArguments() const; - virtual ProjectExplorer::Environment environment() const; + virtual Utils::Environment environment() const; virtual QString dumperLibrary() const; virtual QStringList dumperLibraryLocations() const; virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const; @@ -102,7 +102,7 @@ signals: void runModeChanged(ProjectExplorer::LocalApplicationRunConfiguration::RunMode runMode); void usingDyldImageSuffixChanged(bool); void baseEnvironmentChanged(); - void userEnvironmentChangesChanged(const QList &diff); + void userEnvironmentChangesChanged(const QList &diff); // Note: These signals might not get emitted for every change! void effectiveTargetInformationChanged(); @@ -127,10 +127,10 @@ private: void ctor(); - ProjectExplorer::Environment baseEnvironment() const; + Utils::Environment baseEnvironment() const; QString baseEnvironmentText() const; - void setUserEnvironmentChanges(const QList &diff); - QList userEnvironmentChanges() const; + void setUserEnvironmentChanges(const QList &diff); + QList userEnvironmentChanges() const; void updateTarget(); QStringList m_commandLineArguments; @@ -142,7 +142,7 @@ private: bool m_isUsingDyldImageSuffix; bool m_userSetWokingDirectory; QString m_userWorkingDirectory; - QList m_userEnvironmentChanges; + QList m_userEnvironmentChanges; BaseEnvironmentBase m_baseEnvironmentBase; }; @@ -166,7 +166,7 @@ private slots: void workingDirectoryChanged(const QString &workingDirectory); void commandLineArgumentsChanged(const QString &args); void runModeChanged(ProjectExplorer::LocalApplicationRunConfiguration::RunMode runMode); - void userEnvironmentChangesChanged(const QList &userChanges); + void userEnvironmentChangesChanged(const QList &userChanges); void baseEnvironmentChanged(); void effectiveTargetInformationChanged(); diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index c0fa67a0af0..ed03e55b96f 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -391,7 +391,7 @@ void QtVersionManager::addNewVersionsFromInstaller() void QtVersionManager::updateSystemVersion() { bool haveSystemVersion = false; - QString systemQMakePath = DebuggingHelperLibrary::findSystemQt(ProjectExplorer::Environment::systemEnvironment()); + QString systemQMakePath = DebuggingHelperLibrary::findSystemQt(Utils::Environment::systemEnvironment()); if (systemQMakePath.isNull()) systemQMakePath = tr(""); @@ -1452,7 +1452,7 @@ void QtVersion::updateToolChainAndMkspec() const ProjectExplorer::ToolChain::createMSVCToolChain(m_msvcVersion, isQt64Bit())); m_targetIds.insert(QLatin1String(Constants::DESKTOP_TARGET_ID)); } else if (qmakeCXX == "g++" && makefileGenerator == "MINGW") { - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); //addToEnvironment(env); env.prependOrSetPath(mingwDirectory() + "/bin"); qmakeCXX = env.searchInPath(qmakeCXX); @@ -1461,7 +1461,7 @@ void QtVersion::updateToolChainAndMkspec() const m_targetIds.insert(QLatin1String(Constants::DESKTOP_TARGET_ID)); } else if (qmakeCXX.contains("g++")) { // All g++ variants are treated as desktop g++ // we should try to do a better job, but for now that's good enough - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); //addToEnvironment(env); qmakeCXX = env.searchInPath(qmakeCXX); m_toolChains << ToolChainPtr(ProjectExplorer::ToolChain::createGccToolChain(qmakeCXX)); @@ -1549,7 +1549,7 @@ void QtVersion::setMsvcVersion(const QString &version) m_toolChainUpToDate = false; } -void QtVersion::addToEnvironment(ProjectExplorer::Environment &env) const +void QtVersion::addToEnvironment(Utils::Environment &env) const { env.set("QTDIR", QDir::toNativeSeparators(versionInfo().value("QT_INSTALL_DATA"))); env.prependOrSetPath(versionInfo().value("QT_INSTALL_BINS")); @@ -1707,7 +1707,7 @@ QString QtVersion::buildDebuggingHelperLibrary() QString qtInstallData = versionInfo().value("QT_INSTALL_DATA"); if (qtInstallData.isEmpty()) return QString(); - ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); + Utils::Environment env = Utils::Environment::systemEnvironment(); addToEnvironment(env); // TODO: the debugging helper doesn't comply to actual tool chain yet diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index 23521197674..2ce5a6fbc35 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -107,7 +107,7 @@ public: void setMingwDirectory(const QString &directory); QString msvcVersion() const; void setMsvcVersion(const QString &version); - void addToEnvironment(ProjectExplorer::Environment &env) const; + void addToEnvironment(Utils::Environment &env) const; bool hasDebuggingHelper() const; QString debuggingHelperLibrary() const; -- cgit v1.2.3