diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index ab7fbde24f52504abb7789deec022d8515851b20..b69b5d4c8337b0e443487a447472f2fbe2a20043 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 f9094c975e8377faaed20dc0c70bb0d4df1f5296..a850ba3ac64213c4edcc2d47c2a0404a204d0e3b 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 407bd58d5f897522a90fe740c566bd0ebc6bb5ee..2c29c4576469da89385d0917a8ffe8d55e15eb0c 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 a96cedf503363f80c006e25733b801e8e881f867..e87cb5dc7086f445716ad169d1f1a8246cf590bc 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 f10bf44e05211d67b5d9c9da84cbe0147ee25884..4812505fd8100e726879d9e59d12a3d55b32d2ee 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);