From 37acb3b8d1bf194c6f85cb6c12c7f72757e44768 Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@nokia.com> Date: Thu, 25 Mar 2010 11:55:49 +0100 Subject: [PATCH] Enable shadowbuilding by default for CMake projects Reviewed-by: dt --- .../cmakeprojectmanager/cmakebuildconfiguration.cpp | 9 ++++----- src/plugins/cmakeprojectmanager/cmakeproject.cpp | 5 +++++ src/plugins/cmakeprojectmanager/cmakeproject.h | 2 ++ src/plugins/cmakeprojectmanager/cmaketarget.cpp | 5 +++++ src/plugins/cmakeprojectmanager/cmaketarget.h | 2 ++ 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index ab7fbde24f5..b69b5d4c833 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -52,6 +52,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(CMakeTarget *parent) : BuildConfiguration(parent, QLatin1String(CMAKE_BC_ID)), m_toolChain(0) { + m_buildDirectory = cmakeTarget()->defaultBuildDirectory(); } CMakeBuildConfiguration::CMakeBuildConfiguration(CMakeTarget *parent, CMakeBuildConfiguration *source) : @@ -61,6 +62,7 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(CMakeTarget *parent, CMakeBuild m_msvcVersion(source->m_msvcVersion) { cloneSteps(source); + m_buildDirectory = cmakeTarget()->defaultBuildDirectory(); } QVariantMap CMakeBuildConfiguration::toMap() const @@ -74,7 +76,7 @@ QVariantMap CMakeBuildConfiguration::toMap() const bool CMakeBuildConfiguration::fromMap(const QVariantMap &map) { m_msvcVersion = map.value(QLatin1String(MSVC_VERSION_KEY)).toString(); - m_buildDirectory = map.value(QLatin1String(BUILD_DIRECTORY_KEY)).toString(); + m_buildDirectory = map.value(QLatin1String(BUILD_DIRECTORY_KEY), cmakeTarget()->defaultBuildDirectory()).toString(); return BuildConfiguration::fromMap(map); } @@ -91,10 +93,7 @@ CMakeTarget *CMakeBuildConfiguration::cmakeTarget() const QString CMakeBuildConfiguration::buildDirectory() const { - QString buildDirectory = m_buildDirectory; - if (buildDirectory.isEmpty()) - buildDirectory = target()->project()->projectDirectory() + "/qtcreator-build"; - return buildDirectory; + return m_buildDirectory; } ProjectExplorer::ToolChain::ToolChainType CMakeBuildConfiguration::toolChainType() const diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index f9094c975e8..a850ba3ac64 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -156,6 +156,11 @@ void CMakeProject::changeBuildDirectory(CMakeBuildConfiguration *bc, const QStri parseCMakeLists(); } +QString CMakeProject::defaultBuildDirectory() const +{ + return projectDirectory() + QLatin1String("/qtcreator-build"); +} + bool CMakeProject::parseCMakeLists() { if (!activeTarget() || diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index 407bd58d5f8..2c29c457646 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -97,6 +97,8 @@ public: CMakeBuildTarget buildTargetForTitle(const QString &title); + QString defaultBuildDirectory() const; + bool parseCMakeLists(); signals: diff --git a/src/plugins/cmakeprojectmanager/cmaketarget.cpp b/src/plugins/cmakeprojectmanager/cmaketarget.cpp index a96cedf5033..e87cb5dc708 100644 --- a/src/plugins/cmakeprojectmanager/cmaketarget.cpp +++ b/src/plugins/cmakeprojectmanager/cmaketarget.cpp @@ -82,6 +82,11 @@ CMakeBuildConfigurationFactory *CMakeTarget::buildConfigurationFactory() const return m_buildConfigurationFactory; } +QString CMakeTarget::defaultBuildDirectory() const +{ + return cmakeProject()->defaultBuildDirectory(); +} + bool CMakeTarget::fromMap(const QVariantMap &map) { if (!Target::fromMap(map)) diff --git a/src/plugins/cmakeprojectmanager/cmaketarget.h b/src/plugins/cmakeprojectmanager/cmaketarget.h index f10bf44e052..4812505fd81 100644 --- a/src/plugins/cmakeprojectmanager/cmaketarget.h +++ b/src/plugins/cmakeprojectmanager/cmaketarget.h @@ -59,6 +59,8 @@ public: CMakeBuildConfigurationFactory *buildConfigurationFactory() const; + QString defaultBuildDirectory() const; + protected: bool fromMap(const QVariantMap &map); -- GitLab