From 42385146c78de5019493afa27b1dacef12b08fe0 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 8 Apr 2016 14:14:03 +0200 Subject: [PATCH] CMake: Handle STATIC types in CMakeCache.txt Read STATIC types, but never write them out to the user. They are still useful for Creator-internal sanity checks. Change-Id: I8a13820291378de2370761be537f78fba1e45a0f Reviewed-by: Vikas Pachdha Reviewed-by: Tim Jenssen --- src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp | 5 ++++- src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp | 4 +++- src/plugins/cmakeprojectmanager/cmakeconfigitem.h | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 57f8c36303a..1d133d8d609 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -207,7 +207,10 @@ QList CMakeBuildConfiguration::completeCMakeConfiguration m_completeConfigurationCache = m_buildDirManager->parsedConfiguration(); CMakeConfig cache = Utils::filtered(m_completeConfigurationCache, - [](const CMakeConfigItem &i) { return i.type != CMakeConfigItem::INTERNAL; }); + [](const CMakeConfigItem &i) { + return i.type != CMakeConfigItem::INTERNAL + && i.type != CMakeConfigItem::STATIC; + }); return Utils::transform(cache, [](const CMakeConfigItem &i) { ConfigModel::DataItem j; j.key = QString::fromUtf8(i.key); diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp index 7f4af54338e..3a578c6cace 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp @@ -120,6 +120,8 @@ CMakeConfigItem CMakeConfigItem::fromString(const QString &s) t = CMakeConfigItem::BOOL; else if (type == QLatin1String("INTERNAL")) t = CMakeConfigItem::INTERNAL; + else if (type == QLatin1String("STATIC")) + t = CMakeConfigItem::STATIC; item.key = key.toUtf8(); item.type = t; @@ -130,7 +132,7 @@ CMakeConfigItem CMakeConfigItem::fromString(const QString &s) QString CMakeConfigItem::toString() const { - if (key.isEmpty()) + if (key.isEmpty() || type == CMakeProjectManager::CMakeConfigItem::STATIC) return QString(); QString typeStr; diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h index 2562b924797..b11e83b7bbf 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h @@ -34,7 +34,7 @@ namespace CMakeProjectManager { class CMakeConfigItem { public: - enum Type { FILEPATH, PATH, BOOL, STRING, INTERNAL }; + enum Type { FILEPATH, PATH, BOOL, STRING, INTERNAL, STATIC }; CMakeConfigItem(); CMakeConfigItem(const CMakeConfigItem &other); CMakeConfigItem(const QByteArray &k, Type t, const QByteArray &d, const QByteArray &v);