aboutsummaryrefslogtreecommitdiffstats
path: root/src/tools/sdktool/addtoolchainoperation.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2021-04-21 15:02:30 +0200
committerEike Ziller <eike.ziller@qt.io>2021-04-22 09:30:54 +0000
commitebc033130655ffa5ee46d0b156d38f671458da45 (patch)
tree8f0ceb36bff4de43cde531afe630bc1ef1c38209 /src/tools/sdktool/addtoolchainoperation.cpp
parent63f7ba04276bad419b5a35f7d740bef6eb220de6 (diff)
sdktool: Re-add compatibility hack for old language IDs
This was removed in 6baf09bf91cac8ba71765ab470376541034d6ce5. Even though sdktool doesn't need to write these old IDs anymore, it still must support them for --language for a while, because older Qt installer components still use the numerical values (and will not be updated). Task-number: QTBUG-92949 Change-Id: I7483e52e331fe676b60d7b401f8a6f6510fd1789 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/tools/sdktool/addtoolchainoperation.cpp')
-rw-r--r--src/tools/sdktool/addtoolchainoperation.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/tools/sdktool/addtoolchainoperation.cpp b/src/tools/sdktool/addtoolchainoperation.cpp
index d3eab51405..998a54afb2 100644
--- a/src/tools/sdktool/addtoolchainoperation.cpp
+++ b/src/tools/sdktool/addtoolchainoperation.cpp
@@ -258,7 +258,24 @@ QVariantMap AddToolChainOperation::addToolChain(const QVariantMap &map, const QS
KeyValuePairList data;
data << KeyValuePair({tc, ID}, QVariant(id));
- data << KeyValuePair({tc, LANGUAGE_KEY_V2}, QVariant(lang));
+
+ // Language compatibility hack for old Qt components that use the language spec from 4.2.
+ // Some Qt 5.15 components were actually still using this.
+ QString newLang; // QtC 4.3 and later
+ lang.toInt(&ok);
+ if (lang == "2" || lang == "Cxx") {
+ newLang = "Cxx";
+ } else if (lang == "1" || lang == "C") {
+ newLang = "C";
+ } else if (ok) {
+ std::cerr << "Error: Language ID must be 1 for C, 2 for Cxx "
+ << "or a string like \"C\", \"Cxx\", \"Nim\" (was \""
+ << qPrintable(lang) << "\")" << std::endl;
+ return {};
+ } else if (!ok) {
+ newLang = lang;
+ }
+ data << KeyValuePair({tc, LANGUAGE_KEY_V2}, QVariant(newLang));
data << KeyValuePair({tc, DISPLAYNAME}, QVariant(displayName));
data << KeyValuePair({tc, AUTODETECTED}, QVariant(true));
data << KeyValuePair({tc, PATH}, QVariant(path));