From 8a9cbffea6398f0f018f06b86c8bc6026aaf5ebb Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 21 Apr 2011 11:36:37 +0200 Subject: [PATCH] use environment from build config also when starting external processes this uses QProcessEnvironment directly, which is somewhat inefficient, but it has no big impact, and it can be optimized on the qt side. Task-number: QTCREATORBUG-2866 --- src/plugins/qt4projectmanager/qt4project.cpp | 4 ---- src/shared/proparser/profileevaluator.cpp | 9 +++------ src/shared/proparser/profileevaluator.h | 7 ++++++- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 41de14d032e..bc6cb0232ac 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -895,11 +895,7 @@ ProFileReader *Qt4Project::createProFileReader(Qt4ProFileNode *qt4ProFileNode, Q Utils::Environment env = bc->environment(); Utils::Environment::const_iterator eit = env.constBegin(), eend = env.constEnd(); for (; eit != eend; ++eit) -#ifdef Q_OS_WIN - m_proFileOption->environment.insert(env.key(eit).toUpper(), env.value(eit)); -#else m_proFileOption->environment.insert(env.key(eit), env.value(eit)); -#endif QStringList args; if (QMakeStep *qs = bc->qmakeStep()) diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp index 3d0d8581a9e..100d833d099 100644 --- a/src/shared/proparser/profileevaluator.cpp +++ b/src/shared/proparser/profileevaluator.cpp @@ -48,9 +48,6 @@ #include #include #include -#ifndef QT_BOOTSTRAPPED -# include -#endif #ifdef PROEVALUATOR_THREAD_SAFE # include #endif @@ -168,10 +165,8 @@ void ProFileOption::applyHostMode() QString ProFileOption::getEnv(const QString &var) const { +#ifndef QT_BOOTSTRAPPED if (!environment.isEmpty()) -#ifdef Q_OS_WIN - return environment.value(var.toUpper()); -#else return environment.value(var); #endif return QString::fromLocal8Bit(qgetenv(var.toLocal8Bit().constData())); @@ -1538,6 +1533,8 @@ void ProFileEvaluator::Private::runProcess(QProcess *proc, const QString &comman QProcess::ProcessChannel chan) const { proc->setWorkingDirectory(currentDirectory()); + if (!m_option->environment.isEmpty()) + proc->setProcessEnvironment(m_option->environment); # ifdef Q_OS_WIN proc->setNativeArguments(QLatin1String("/v:off /s /c \"") + command + QLatin1Char('"')); proc->start(m_option->getEnv(QLatin1String("COMSPEC")), QStringList()); diff --git a/src/shared/proparser/profileevaluator.h b/src/shared/proparser/profileevaluator.h index b6739dc4d54..725664de41f 100644 --- a/src/shared/proparser/profileevaluator.h +++ b/src/shared/proparser/profileevaluator.h @@ -37,6 +37,9 @@ #include #include +#ifndef QT_BOOTSTRAPPED +# include +#endif #ifdef PROEVALUATOR_THREAD_SAFE # include # include @@ -168,7 +171,9 @@ struct ProFileOption QString qmakespec; QString cachefile; QHash properties; - QHash environment; +#ifndef QT_BOOTSTRAPPED + QProcessEnvironment environment; +#endif QString sysroot; //QString pro_ext;