diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp
index fdf1fc0e4587383be2d6fcf71693917a81b44fa8..eb10aee6b97e58d43e22d2bb93a8ee9f46b5c83d 100644
--- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp
@@ -134,6 +134,23 @@ QStringList CMakeConfigItem::cmakeSplitValue(const QString &in, bool keepEmpty)
     return newArgs;
 }
 
+CMakeConfigItem::Type CMakeConfigItem::typeStringToType(const QByteArray &type)
+{
+    if (type == "BOOL")
+        return CMakeConfigItem::BOOL;
+    if (type == "STRING")
+        return CMakeConfigItem::STRING;
+    if (type == "FILEPATH")
+        return CMakeConfigItem::FILEPATH;
+    if (type == "PATH")
+        return CMakeConfigItem::PATH;
+    if (type == "STATIC")
+        return CMakeConfigItem::STATIC;
+
+    QTC_CHECK(type == "INTERNAL");
+    return CMakeConfigItem::INTERNAL;
+}
+
 QString CMakeConfigItem::expandedValue(const ProjectExplorer::Kit *k) const
 {
     return expandedValue(k->macroExpander());
@@ -195,20 +212,8 @@ CMakeConfigItem CMakeConfigItem::fromString(const QString &s)
     // Fill in item:
     CMakeConfigItem item;
     if (!key.isEmpty()) {
-        CMakeConfigItem::Type t = CMakeConfigItem::STRING;
-        if (type == QLatin1String("FILEPATH"))
-            t = CMakeConfigItem::FILEPATH;
-        else if (type == QLatin1String("PATH"))
-            t = CMakeConfigItem::PATH;
-        else if (type == QLatin1String("BOOL"))
-            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;
+        item.type = CMakeConfigItem::typeStringToType(type.toUtf8());
         item.value = value.toUtf8();
     }
     return item;
diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h
index 24e5c54cd9de10cddfa1dbc2b0c6a5de88e9b280..e52a3ee535a91febe0f08d0186387ef51ead18da 100644
--- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.h
+++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.h
@@ -47,6 +47,7 @@ public:
     static QString expandedValueOf(const ProjectExplorer::Kit *k, const QByteArray &key,
                                    const QList<CMakeConfigItem> &input);
     static QStringList cmakeSplitValue(const QString &in, bool keepEmpty = false);
+    static Type typeStringToType(const QByteArray &typeString);
     bool isNull() const { return key.isEmpty(); }
 
     QString expandedValue(const ProjectExplorer::Kit *k) const;
diff --git a/src/plugins/cmakeprojectmanager/tealeafreader.cpp b/src/plugins/cmakeprojectmanager/tealeafreader.cpp
index 76ce5f8f0279e361c1b1b0709430699f8db928e7..b84544d177b723d84d6bb0a7b66e370cba191301 100644
--- a/src/plugins/cmakeprojectmanager/tealeafreader.cpp
+++ b/src/plugins/cmakeprojectmanager/tealeafreader.cpp
@@ -143,20 +143,6 @@ static QByteArrayList splitCMakeCacheLine(const QByteArray &line) {
                             << line.mid(equalPos + 1);
 }
 
-static CMakeConfigItem::Type fromByteArray(const QByteArray &type) {
-    if (type == "BOOL")
-        return CMakeConfigItem::BOOL;
-    if (type == "STRING")
-        return CMakeConfigItem::STRING;
-    if (type == "FILEPATH")
-        return CMakeConfigItem::FILEPATH;
-    if (type == "PATH")
-        return CMakeConfigItem::PATH;
-    QTC_CHECK(type == "INTERNAL" || type == "STATIC");
-
-    return CMakeConfigItem::INTERNAL;
-}
-
 // --------------------------------------------------------------------
 // TeaLeafReader:
 // --------------------------------------------------------------------
@@ -305,10 +291,10 @@ CMakeConfig TeaLeafReader::parseConfiguration(const Utils::FileName &cacheFile,
 
         if (key.endsWith("-ADVANCED") && value == "1") {
             advancedSet.insert(key.left(key.count() - 9 /* "-ADVANCED" */));
-        } else if (key.endsWith("-STRINGS") && fromByteArray(type) == CMakeConfigItem::INTERNAL) {
+        } else if (key.endsWith("-STRINGS") && CMakeConfigItem::typeStringToType(type) == CMakeConfigItem::INTERNAL) {
             valuesMap[key.left(key.count() - 8) /* "-STRINGS" */] = value;
         } else {
-            CMakeConfigItem::Type t = fromByteArray(type);
+            CMakeConfigItem::Type t = CMakeConfigItem::typeStringToType(type);
             result << CMakeConfigItem(key, t, documentation, value);
         }
     }