aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Hunger <[email protected]>2010-09-22 15:14:07 +0200
committerTobias Hunger <[email protected]>2010-09-23 13:40:25 +0200
commit747f750370a98317dc224e54527ce9401f281966 (patch)
treed475a7f2b0d3623a9d02f717260a6b47a8e1d40d /src
parent27ded2076ee49956c6ce93d0ba75ea3cb0f2b575 (diff)
Set BUILDDIR and SOURCEDIR environment variables
Set BUILDDIR and SOURCEDIR in the build environment. Reviewed-by: dt
Diffstat (limited to 'src')
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp9
-rw-r--r--src/plugins/projectexplorer/buildconfiguration.cpp10
-rw-r--r--src/plugins/qt4projectmanager/qt4buildconfiguration.cpp5
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);
}