diff options
author | Eike Ziller <eike.ziller@qt.io> | 2021-04-21 15:02:30 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2021-04-22 09:30:54 +0000 |
commit | ebc033130655ffa5ee46d0b156d38f671458da45 (patch) | |
tree | 8f0ceb36bff4de43cde531afe630bc1ef1c38209 /src/tools/sdktool/addtoolchainoperation.cpp | |
parent | 63f7ba04276bad419b5a35f7d740bef6eb220de6 (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.cpp | 19 |
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)); |