aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-10-17 13:02:43 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-10-17 13:11:09 +0000
commit139196b93c4818d0fd944863944babeec85af1bf (patch)
tree96634b3a66580c57d636df86003f4e47bd514406
parentbfc65cee9803b6efd859455833aecac01286d852 (diff)
Fix restoring cmake run configurationsv4.11.0-beta1
Amends 5bcd59c94f. Fixes: QTCREATORBUG-22932 Change-Id: I46b42f0e15eaf1fe4bd2f1ea4a87286ee68cfee8 Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/plugins/projectexplorer/runconfiguration.cpp7
-rw-r--r--src/plugins/projectexplorer/target.cpp5
2 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index 549f98e230..2c2394c7e3 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -356,9 +356,14 @@ bool RunConfiguration::fromMap(const QVariantMap &map)
m_buildKey = map.value(BUILD_KEY).toString();
if (m_buildKey.isEmpty()) {
- // FIXME: Remove this id mangling, e.g. by using a separate entry for the build key.
const Core::Id mangledId = Core::Id::fromSetting(map.value(settingsIdKey()));
m_buildKey = mangledId.suffixAfter(id());
+
+ // Hack for cmake projects 4.10 -> 4.11.
+ const QString magicSeparator = "///::///";
+ const int magicIndex = m_buildKey.indexOf(magicSeparator);
+ if (magicIndex != -1)
+ m_buildKey = m_buildKey.mid(magicIndex + magicSeparator.length());
}
return true;
diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp
index b9f92741d2..ecddc0d977 100644
--- a/src/plugins/projectexplorer/target.cpp
+++ b/src/plugins/projectexplorer/target.cpp
@@ -867,7 +867,10 @@ bool Target::fromMap(const QVariantMap &map)
RunConfiguration *rc = RunConfigurationFactory::restore(this, valueMap);
if (!rc)
continue;
- QTC_CHECK(rc->id().withSuffix(rc->buildKey()) == ProjectExplorer::idFromMap(valueMap));
+ const Core::Id theIdFromMap = ProjectExplorer::idFromMap(valueMap);
+ if (!theIdFromMap.toString().contains("///::///")) { // Hack for cmake 4.10 -> 4.11
+ QTC_CHECK(rc->id().withSuffix(rc->buildKey()) == theIdFromMap);
+ }
addRunConfiguration(rc);
if (i == activeConfiguration)
setActiveRunConfiguration(rc);