diff options
author | Tobias Hunger <[email protected]> | 2010-09-22 15:14:07 +0200 |
---|---|---|
committer | Tobias Hunger <[email protected]> | 2010-09-23 13:40:25 +0200 |
commit | 747f750370a98317dc224e54527ce9401f281966 (patch) | |
tree | d475a7f2b0d3623a9d02f717260a6b47a8e1d40d /src | |
parent | 27ded2076ee49956c6ce93d0ba75ea3cb0f2b575 (diff) |
Set BUILDDIR and SOURCEDIR environment variables
Set BUILDDIR and SOURCEDIR in the build environment.
Reviewed-by: dt
Diffstat (limited to 'src')
3 files changed, 21 insertions, 3 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 5c0ad23cc6b..84c152ffdcd 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -76,10 +76,15 @@ QVariantMap CMakeBuildConfiguration::toMap() const bool CMakeBuildConfiguration::fromMap(const QVariantMap &map) { + if (!BuildConfiguration::fromMap(map)) + return false; + m_msvcVersion = map.value(QLatin1String(MSVC_VERSION_KEY)).toString(); m_buildDirectory = map.value(QLatin1String(BUILD_DIRECTORY_KEY), cmakeTarget()->defaultBuildDirectory()).toString(); - return BuildConfiguration::fromMap(map); + environment().set("BUILDDIR", m_buildDirectory); + + return true; } CMakeBuildConfiguration::~CMakeBuildConfiguration() @@ -137,7 +142,9 @@ void CMakeBuildConfiguration::setBuildDirectory(const QString &buildDirectory) if (m_buildDirectory == buildDirectory) return; m_buildDirectory = buildDirectory; + environment().set("BUILDDIR", m_buildDirectory); emit buildDirectoryChanged(); + emit environmentChanged(); } QString CMakeBuildConfiguration::msvcVersion() const diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 44f9c084daa..03d28f5635b 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -34,6 +34,7 @@ #include "projectexplorer.h" #include "projectexplorerconstants.h" #include "target.h" +#include "project.h" #include <QtCore/QProcess> @@ -144,9 +145,14 @@ Target *BuildConfiguration::target() const Environment BuildConfiguration::baseEnvironment() const { + Environment result; if (useSystemEnvironment()) - return Environment(QProcess::systemEnvironment()); - return Environment(); + result = Environment(QProcess::systemEnvironment()); + + result.set(QLatin1String("BUILDDIR"), QDir::toNativeSeparators(target()->project()->projectDirectory())); + result.set(QLatin1String("SOURCEDIR"), QDir::toNativeSeparators(target()->project()->projectDirectory())); + + return result; } QString BuildConfiguration::baseEnvironmentText() const diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 43ba7dff082..0517dd06a86 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -165,6 +165,7 @@ bool Qt4BuildConfiguration::fromMap(const QVariantMap &map) qWarning() << "No toolchain available for" << qtVersion()->displayName() << "used in" << target()->id() << "!"; return false; } + return true; } @@ -197,6 +198,8 @@ ProjectExplorer::Environment Qt4BuildConfiguration::baseEnvironment() const { Environment env = BuildConfiguration::baseEnvironment(); qtVersion()->addToEnvironment(env); + env.set(QLatin1String("BUILDDIR"), QDir::toNativeSeparators(buildDirectory())); + ToolChain *tc = toolChain(); if (tc) tc->addToEnvironment(env); @@ -265,6 +268,8 @@ void Qt4BuildConfiguration::setShadowBuildAndDirectory(bool shadowBuild, const Q m_shadowBuild = toSet; m_buildDirectory = directoryToSet; + + emit environmentChanged(); emit buildDirectoryChanged(); emit proFileEvaluateNeeded(this); } |