forked from qt-creator/qt-creator
ProjectExplorer: Remove toolchain settings compatibility with <= 4.3
As data point: Ubuntu 18.04 has Qt Creator 4.5. Change-Id: I2794197e511666b3931fb8efc2669a574e6f1ac9 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -58,8 +58,6 @@
|
|||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
|
|
||||||
const char KITINFORMATION_ID_V1[] = "PE.Profile.ToolChain";
|
|
||||||
const char KITINFORMATION_ID_V2[] = "PE.Profile.ToolChains";
|
|
||||||
const char KITINFORMATION_ID_V3[] = "PE.Profile.ToolChainsV3";
|
const char KITINFORMATION_ID_V3[] = "PE.Profile.ToolChainsV3";
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
@@ -389,65 +387,6 @@ Tasks ToolChainKitAspect::validate(const Kit *k) const
|
|||||||
void ToolChainKitAspect::upgrade(Kit *k)
|
void ToolChainKitAspect::upgrade(Kit *k)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(k, return);
|
QTC_ASSERT(k, return);
|
||||||
|
|
||||||
const Utils::Id oldIdV1 = KITINFORMATION_ID_V1;
|
|
||||||
const Utils::Id oldIdV2 = KITINFORMATION_ID_V2;
|
|
||||||
|
|
||||||
// upgrade <=4.1 to 4.2 (keep old settings around for now)
|
|
||||||
{
|
|
||||||
const QVariant oldValue = k->value(oldIdV1);
|
|
||||||
const QVariant value = k->value(oldIdV2);
|
|
||||||
if (value.isNull() && !oldValue.isNull()) {
|
|
||||||
QVariantMap newValue;
|
|
||||||
if (oldValue.type() == QVariant::Map) {
|
|
||||||
// Used between 4.1 and 4.2:
|
|
||||||
newValue = oldValue.toMap();
|
|
||||||
} else {
|
|
||||||
// Used up to 4.1:
|
|
||||||
newValue.insert(Deprecated::Toolchain::languageId(Deprecated::Toolchain::Cxx), oldValue.toString());
|
|
||||||
|
|
||||||
const Utils::Id typeId = DeviceTypeKitAspect::deviceTypeId(k);
|
|
||||||
if (typeId == Constants::DESKTOP_DEVICE_TYPE) {
|
|
||||||
// insert default C compiler which did not exist before
|
|
||||||
newValue.insert(Deprecated::Toolchain::languageId(Deprecated::Toolchain::C),
|
|
||||||
defaultToolChainIds().value(Utils::Id(Constants::C_LANGUAGE_ID)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
k->setValue(oldIdV2, newValue);
|
|
||||||
k->setSticky(oldIdV2, k->isSticky(oldIdV1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// upgrade 4.2 to 4.3 (keep old settings around for now)
|
|
||||||
{
|
|
||||||
const QVariant oldValue = k->value(oldIdV2);
|
|
||||||
const QVariant value = k->value(ToolChainKitAspect::id());
|
|
||||||
if (value.isNull() && !oldValue.isNull()) {
|
|
||||||
QVariantMap newValue = oldValue.toMap();
|
|
||||||
QVariantMap::iterator it = newValue.find(Deprecated::Toolchain::languageId(Deprecated::Toolchain::C));
|
|
||||||
if (it != newValue.end())
|
|
||||||
newValue.insert(Utils::Id(Constants::C_LANGUAGE_ID).toString(), it.value());
|
|
||||||
it = newValue.find(Deprecated::Toolchain::languageId(Deprecated::Toolchain::Cxx));
|
|
||||||
if (it != newValue.end())
|
|
||||||
newValue.insert(Utils::Id(Constants::CXX_LANGUAGE_ID).toString(), it.value());
|
|
||||||
k->setValue(ToolChainKitAspect::id(), newValue);
|
|
||||||
k->setSticky(ToolChainKitAspect::id(), k->isSticky(oldIdV2));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// upgrade 4.3-temporary-master-state to 4.3:
|
|
||||||
{
|
|
||||||
const QVariantMap valueMap = k->value(ToolChainKitAspect::id()).toMap();
|
|
||||||
QVariantMap result;
|
|
||||||
for (const QString &key : valueMap.keys()) {
|
|
||||||
const int pos = key.lastIndexOf('.');
|
|
||||||
if (pos >= 0)
|
|
||||||
result.insert(key.mid(pos + 1), valueMap.value(key));
|
|
||||||
else
|
|
||||||
result.insert(key, valueMap.value(key));
|
|
||||||
}
|
|
||||||
k->setValue(ToolChainKitAspect::id(), result);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToolChainKitAspect::fix(Kit *k)
|
void ToolChainKitAspect::fix(Kit *k)
|
||||||
|
@@ -42,7 +42,6 @@
|
|||||||
static const char ID_KEY[] = "ProjectExplorer.ToolChain.Id";
|
static const char ID_KEY[] = "ProjectExplorer.ToolChain.Id";
|
||||||
static const char DISPLAY_NAME_KEY[] = "ProjectExplorer.ToolChain.DisplayName";
|
static const char DISPLAY_NAME_KEY[] = "ProjectExplorer.ToolChain.DisplayName";
|
||||||
static const char AUTODETECT_KEY[] = "ProjectExplorer.ToolChain.Autodetect";
|
static const char AUTODETECT_KEY[] = "ProjectExplorer.ToolChain.Autodetect";
|
||||||
static const char LANGUAGE_KEY_V1[] = "ProjectExplorer.ToolChain.Language"; // For QtCreator <= 4.2
|
|
||||||
static const char LANGUAGE_KEY_V2[] = "ProjectExplorer.ToolChain.LanguageV2"; // For QtCreator > 4.2
|
static const char LANGUAGE_KEY_V2[] = "ProjectExplorer.ToolChain.LanguageV2"; // For QtCreator > 4.2
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
@@ -81,41 +80,8 @@ public:
|
|||||||
ToolChain::HeaderPathsCache m_headerPathsCache;
|
ToolChain::HeaderPathsCache m_headerPathsCache;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
} // Internal
|
||||||
|
|
||||||
// Deprecated used from QtCreator <= 4.2
|
|
||||||
|
|
||||||
Utils::Id fromLanguageV1(int language)
|
|
||||||
{
|
|
||||||
switch (language)
|
|
||||||
{
|
|
||||||
case Deprecated::Toolchain::C :
|
|
||||||
return Utils::Id(Constants::C_LANGUAGE_ID);
|
|
||||||
case Deprecated::Toolchain::Cxx:
|
|
||||||
return Utils::Id(Constants::CXX_LANGUAGE_ID);
|
|
||||||
case Deprecated::Toolchain::None:
|
|
||||||
default:
|
|
||||||
return Utils::Id();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
|
|
||||||
namespace Deprecated {
|
|
||||||
namespace Toolchain {
|
|
||||||
QString languageId(Language l)
|
|
||||||
{
|
|
||||||
switch (l) {
|
|
||||||
case Language::None:
|
|
||||||
return QStringLiteral("None");
|
|
||||||
case Language::C:
|
|
||||||
return QStringLiteral("C");
|
|
||||||
case Language::Cxx:
|
|
||||||
return QStringLiteral("Cxx");
|
|
||||||
};
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
} // namespace Toolchain
|
|
||||||
} // namespace Deprecated
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\class ProjectExplorer::ToolChain
|
\class ProjectExplorer::ToolChain
|
||||||
@@ -239,15 +205,6 @@ QVariantMap ToolChain::toMap() const
|
|||||||
result.insert(QLatin1String(ID_KEY), idToSave);
|
result.insert(QLatin1String(ID_KEY), idToSave);
|
||||||
result.insert(QLatin1String(DISPLAY_NAME_KEY), displayName());
|
result.insert(QLatin1String(DISPLAY_NAME_KEY), displayName());
|
||||||
result.insert(QLatin1String(AUTODETECT_KEY), isAutoDetected());
|
result.insert(QLatin1String(AUTODETECT_KEY), isAutoDetected());
|
||||||
// <Compatibility with QtC 4.2>
|
|
||||||
int oldLanguageId = -1;
|
|
||||||
if (language() == ProjectExplorer::Constants::C_LANGUAGE_ID)
|
|
||||||
oldLanguageId = 1;
|
|
||||||
else if (language() == ProjectExplorer::Constants::CXX_LANGUAGE_ID)
|
|
||||||
oldLanguageId = 2;
|
|
||||||
if (oldLanguageId >= 0)
|
|
||||||
result.insert(LANGUAGE_KEY_V1, oldLanguageId);
|
|
||||||
// </Compatibility>
|
|
||||||
result.insert(QLatin1String(LANGUAGE_KEY_V2), language().toSetting());
|
result.insert(QLatin1String(LANGUAGE_KEY_V2), language().toSetting());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -311,8 +268,6 @@ bool ToolChain::fromMap(const QVariantMap &data)
|
|||||||
d->m_language = Utils::Id::fromString(langId.mid(pos + 1));
|
d->m_language = Utils::Id::fromString(langId.mid(pos + 1));
|
||||||
else
|
else
|
||||||
d->m_language = Utils::Id::fromString(langId);
|
d->m_language = Utils::Id::fromString(langId);
|
||||||
} else if (data.contains(LANGUAGE_KEY_V1)) { // Import from old settings
|
|
||||||
d->m_language = Internal::fromLanguageV1(data.value(QLatin1String(LANGUAGE_KEY_V1)).toInt());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!d->m_language.isValid())
|
if (!d->m_language.isValid())
|
||||||
|
@@ -51,18 +51,6 @@ namespace ProjectExplorer {
|
|||||||
|
|
||||||
namespace Internal { class ToolChainPrivate; }
|
namespace Internal { class ToolChainPrivate; }
|
||||||
|
|
||||||
namespace Deprecated {
|
|
||||||
// Deprecated in 4.3:
|
|
||||||
namespace Toolchain {
|
|
||||||
enum Language {
|
|
||||||
None = 0,
|
|
||||||
C,
|
|
||||||
Cxx
|
|
||||||
};
|
|
||||||
QString languageId(Language l);
|
|
||||||
} // namespace Toolchain
|
|
||||||
} // namespace Deprecated
|
|
||||||
|
|
||||||
class Abi;
|
class Abi;
|
||||||
class ToolChainConfigWidget;
|
class ToolChainConfigWidget;
|
||||||
class ToolChainFactory;
|
class ToolChainFactory;
|
||||||
|
@@ -46,7 +46,6 @@ const char VERSION[] = "Version";
|
|||||||
const char ID[] = "ProjectExplorer.ToolChain.Id";
|
const char ID[] = "ProjectExplorer.ToolChain.Id";
|
||||||
const char DISPLAYNAME[] = "ProjectExplorer.ToolChain.DisplayName";
|
const char DISPLAYNAME[] = "ProjectExplorer.ToolChain.DisplayName";
|
||||||
const char AUTODETECTED[] = "ProjectExplorer.ToolChain.Autodetect";
|
const char AUTODETECTED[] = "ProjectExplorer.ToolChain.Autodetect";
|
||||||
const char LANGUAGE_KEY[] = "ProjectExplorer.ToolChain.Language";
|
|
||||||
const char LANGUAGE_KEY_V2[] = "ProjectExplorer.ToolChain.LanguageV2";
|
const char LANGUAGE_KEY_V2[] = "ProjectExplorer.ToolChain.LanguageV2";
|
||||||
|
|
||||||
// GCC ToolChain:
|
// GCC ToolChain:
|
||||||
@@ -259,30 +258,7 @@ QVariantMap AddToolChainOperation::addToolChain(const QVariantMap &map, const QS
|
|||||||
|
|
||||||
KeyValuePairList data;
|
KeyValuePairList data;
|
||||||
data << KeyValuePair({tc, ID}, QVariant(id));
|
data << KeyValuePair({tc, ID}, QVariant(id));
|
||||||
|
data << KeyValuePair({tc, LANGUAGE_KEY_V2}, QVariant(lang));
|
||||||
// Language compatibility hack for 4.2:
|
|
||||||
QString newLang; // QtC 4.3 and later
|
|
||||||
QString oldLang; // QtC 4.2
|
|
||||||
int langInt = lang.toInt(&ok);
|
|
||||||
Q_UNUSED(langInt)
|
|
||||||
if (lang == "2" || lang == "Cxx") {
|
|
||||||
newLang = "Cxx";
|
|
||||||
oldLang = "2";
|
|
||||||
} else if (lang == "1" || lang == "C") {
|
|
||||||
newLang = "C";
|
|
||||||
oldLang = "1";
|
|
||||||
} else if (ok) {
|
|
||||||
std::cerr << "Error: Language ID must be 1 for C, 2 for Cxx "
|
|
||||||
<< "or a string like (\"C\", \"Cxx\", \"Nim\", etc.)" << std::endl;
|
|
||||||
return {};
|
|
||||||
} else if (!ok) {
|
|
||||||
newLang = lang;
|
|
||||||
oldLang = "";
|
|
||||||
}
|
|
||||||
if (!oldLang.isEmpty())
|
|
||||||
data << KeyValuePair({tc, LANGUAGE_KEY}, QVariant(oldLang));
|
|
||||||
if (!newLang.isEmpty())
|
|
||||||
data << KeyValuePair({tc, LANGUAGE_KEY_V2}, QVariant(newLang));
|
|
||||||
data << KeyValuePair({tc, DISPLAYNAME}, QVariant(displayName));
|
data << KeyValuePair({tc, DISPLAYNAME}, QVariant(displayName));
|
||||||
data << KeyValuePair({tc, AUTODETECTED}, QVariant(true));
|
data << KeyValuePair({tc, AUTODETECTED}, QVariant(true));
|
||||||
data << KeyValuePair({tc, PATH}, QVariant(path));
|
data << KeyValuePair({tc, PATH}, QVariant(path));
|
||||||
|
Reference in New Issue
Block a user