aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp8
-rw-r--r--src/tools/sdktool/addkitoperation.cpp2
-rw-r--r--src/tools/sdktool/addqtoperation.cpp44
-rw-r--r--src/tools/sdktool/addqtoperation.h4
-rw-r--r--src/tools/sdktool/rmkitoperation.cpp2
-rw-r--r--src/tools/sdktool/rmqtoperation.cpp5
6 files changed, 48 insertions, 17 deletions
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index 86c188617c1..d0e892eaed4 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -74,6 +74,8 @@ static const char QTVERSION_OVERRIDE_FEATURES[] = "overrideFeatures";
static const char QTVERSIONQMAKEPATH[] = "QMakePath";
static const char QTVERSIONSOURCEPATH[] = "SourcePath";
+static const char QTVERSION_ABIS[] = "Abis";
+
static const char MKSPEC_VALUE_LIBINFIX[] = "QT_LIBINFIX";
static const char MKSPEC_VALUE_NAMESPACE[] = "QT_NAMESPACE";
@@ -503,6 +505,12 @@ void BaseQtVersion::fromMap(const QVariantMap &map)
m_qtSources = Utils::FileName::fromUserInput(
map.value(QTVERSIONSOURCEPATH).toString());
+ // Handle ABIs provided by the SDKTool:
+ // Note: Creator does not write these settings itself, so it has to come from the SDKTool!
+ m_qtAbis = Utils::transform(map.value(QTVERSION_ABIS, QStringList()).toStringList(), &Abi::fromString);
+ m_qtAbis = Utils::filtered(m_qtAbis, &Abi::isValid);
+ m_hasQtAbis = !m_qtAbis.isEmpty();
+
QFileInfo fi(string);
if (BuildableHelperLibrary::isQtChooser(fi)) {
// we don't want to treat qtchooser as a normal qmake
diff --git a/src/tools/sdktool/addkitoperation.cpp b/src/tools/sdktool/addkitoperation.cpp
index e5767be7e86..a58e1257c20 100644
--- a/src/tools/sdktool/addkitoperation.cpp
+++ b/src/tools/sdktool/addkitoperation.cpp
@@ -318,7 +318,7 @@ bool AddKitOperation::test() const
QVariantMap qtMap = AddQtOperation::initializeQtVersions();
qtMap = AddQtOperation::addQt(qtMap, "{qt-id}", "Qt", "desktop-qt", "/usr/bin/qmake",
- KeyValuePairList());
+ KeyValuePairList(), {});
QVariantMap devMap = AddDeviceOperation::initializeDevices();
devMap = AddDeviceOperation::addDevice(devMap, "{dev-id}", "Dev", 0, 0,
diff --git a/src/tools/sdktool/addqtoperation.cpp b/src/tools/sdktool/addqtoperation.cpp
index 59a0b1b5550..c71676433be 100644
--- a/src/tools/sdktool/addqtoperation.cpp
+++ b/src/tools/sdktool/addqtoperation.cpp
@@ -46,6 +46,7 @@ const char ID[] = "Id";
const char DISPLAYNAME[] = "Name";
const char AUTODETECTED[] = "isAutodetected";
const char AUTODETECTION_SOURCE[] = "autodetectionSource";
+const char ABIS[] = "Abis";
const char QMAKE[] = "QMakePath";
const char TYPE[] = "QtVersion.Type";
@@ -72,6 +73,7 @@ QString AddQtOperation::argumentsHelpText() const
" --name <NAME> display name of the new Qt version. (required)\n"
" --qmake <PATH> path to qmake. (required)\n"
" --type <TYPE> type of Qt version to add. (required)\n"
+ " --abis <ABI>(,<ABI>)* ABIs of Qt version (leave out for auto-detection!)\n"
" <KEY> <TYPE:VALUE> extra key value pairs\n");
}
@@ -121,6 +123,16 @@ bool AddQtOperation::setArguments(const QStringList &args)
continue;
}
+ if (current == "--abis") {
+ if (next.isNull()) {
+ std::cerr << "Error parsing after --abis." << std::endl << std::endl;
+ return false;
+ }
+ ++i; // skip next;
+ m_abis = next.split(',');
+ continue;
+ }
+
if (next.isNull()) {
std::cerr << "Unknown parameter: " << qPrintable(current) << std::endl << std::endl;
return false;
@@ -155,7 +167,7 @@ int AddQtOperation::execute() const
if (map.isEmpty())
map = initializeQtVersions();
- QVariantMap result = addQt(map, m_id, m_displayName, m_type, m_qmake, m_extra);
+ QVariantMap result = addQt(map, m_id, m_displayName, m_type, m_qmake, m_extra, m_abis);
if (result.isEmpty() || result == map)
return 2;
@@ -176,11 +188,13 @@ bool AddQtOperation::test() const
#if defined Q_OS_WIN
map = addQt(map, QLatin1String("{some-qt-id}"), QLatin1String("Test Qt Version"), QLatin1String("testType"),
QLatin1String("/tmp//../tmp/test\\qmake"),
- KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue"))));
+ KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue"))),
+ QStringList());
#else
map = addQt(map, QLatin1String("{some-qt-id}"), QLatin1String("Test Qt Version"), QLatin1String("testType"),
QLatin1String("/tmp//../tmp/test/qmake"),
- KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue"))));
+ KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue"))),
+ QStringList());
#endif
if (map.count() != 2
@@ -190,7 +204,7 @@ bool AddQtOperation::test() const
return false;
QVariantMap version0 = map.value(QLatin1String("QtVersion.0")).toMap();
- if (version0.count() != 7
+ if (version0.count() != 8
|| !version0.contains(QLatin1String(ID))
|| version0.value(QLatin1String(ID)).toInt() != -1
|| !version0.contains(QLatin1String(DISPLAYNAME))
@@ -201,6 +215,8 @@ bool AddQtOperation::test() const
|| version0.value(QLatin1String(AUTODETECTION_SOURCE)).toString() != QLatin1String("SDK.{some-qt-id}")
|| !version0.contains(QLatin1String(TYPE))
|| version0.value(QLatin1String(TYPE)).toString() != QLatin1String("testType")
+ || !version0.contains(QLatin1String(ABIS))
+ || version0.value(QLatin1String(ABIS)).toStringList() != QStringList()
|| !version0.contains(QLatin1String(QMAKE))
|| version0.value(QLatin1String(QMAKE)).toString() != QLatin1String("/tmp/test/qmake")
|| !version0.contains(QLatin1String("extraData"))
@@ -210,14 +226,16 @@ bool AddQtOperation::test() const
// Ignore existing ids:
QVariantMap result = addQt(map, QLatin1String("{some-qt-id}"), QLatin1String("Test Qt Version2"), QLatin1String("testType2"),
QLatin1String("/tmp/test/qmake2"),
- KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue"))));
+ KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue"))),
+ QStringList());
if (!result.isEmpty())
return false;
// Make sure name is unique:
map = addQt(map, QLatin1String("testId2"), QLatin1String("Test Qt Version"), QLatin1String("testType3"),
- QLatin1String("/tmp/test/qmake2"),
- KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue"))));
+ QLatin1String("/tmp/test/qmake2"),
+ KeyValuePairList() << KeyValuePair(QLatin1String("extraData"), QVariant(QLatin1String("extraValue"))),
+ QStringList());
if (map.count() != 3
|| !map.contains(QLatin1String(VERSION))
|| map.value(QLatin1String(VERSION)).toInt() != 1
@@ -229,7 +247,7 @@ bool AddQtOperation::test() const
return false;
QVariantMap version1 = map.value(QLatin1String("QtVersion.1")).toMap();
- if (version1.count() != 7
+ if (version1.count() != 8
|| !version1.contains(QLatin1String(ID))
|| version1.value(QLatin1String(ID)).toInt() != -1
|| !version1.contains(QLatin1String(DISPLAYNAME))
@@ -240,6 +258,8 @@ bool AddQtOperation::test() const
|| version1.value(QLatin1String(AUTODETECTION_SOURCE)).toString() != QLatin1String("SDK.testId2")
|| !version1.contains(QLatin1String(TYPE))
|| version1.value(QLatin1String(TYPE)).toString() != QLatin1String("testType3")
+ || !version1.contains(QLatin1String(ABIS))
+ || version1.value(QLatin1String(ABIS)).toStringList() != QStringList()
|| !version1.contains(QLatin1String(QMAKE))
|| version1.value(QLatin1String(QMAKE)).toString() != QLatin1String("/tmp/test/qmake2")
|| !version1.contains(QLatin1String("extraData"))
@@ -252,7 +272,8 @@ bool AddQtOperation::test() const
QVariantMap AddQtOperation::addQt(const QVariantMap &map,
const QString &id, const QString &displayName, const QString &type,
- const QString &qmake, const KeyValuePairList &extra)
+ const QString &qmake, const KeyValuePairList &extra,
+ const QStringList &abis)
{
QString sdkId = extendId(id);
@@ -293,6 +314,7 @@ QVariantMap AddQtOperation::addQt(const QVariantMap &map,
data << KeyValuePair(QStringList() << qt << QLatin1String(AUTODETECTION_SOURCE), QVariant(sdkId));
data << KeyValuePair(QStringList() << qt << QLatin1String(QMAKE), QVariant(saneQmake));
data << KeyValuePair(QStringList() << qt << QLatin1String(TYPE), QVariant(type));
+ data << KeyValuePair(QStringList() << qt << ABIS, QVariant(abis));
KeyValuePairList qtExtraList;
foreach (const KeyValuePair &pair, extra)
@@ -322,10 +344,8 @@ bool AddQtOperation::exists(const QVariantMap &map, const QString &id)
// Sanity check: Make sure autodetection source is not in use already:
QStringList valueKeys = FindValueOperation::findValue(map, sdkId);
foreach (const QString &k, valueKeys) {
- if (k.endsWith(QString(QLatin1Char('/')) + QLatin1String(AUTODETECTION_SOURCE))) {
+ if (k.endsWith(QString(QLatin1Char('/')) + QLatin1String(AUTODETECTION_SOURCE)))
return true;
- break;
- }
}
return false;
}
diff --git a/src/tools/sdktool/addqtoperation.h b/src/tools/sdktool/addqtoperation.h
index 27125567677..65e31ff8353 100644
--- a/src/tools/sdktool/addqtoperation.h
+++ b/src/tools/sdktool/addqtoperation.h
@@ -46,7 +46,8 @@ public:
static QVariantMap addQt(const QVariantMap &map,
const QString &id, const QString &displayName, const QString &type,
- const QString &qmake, const KeyValuePairList &extra);
+ const QString &qmake, const KeyValuePairList &extra,
+ const QStringList &abis);
static QVariantMap initializeQtVersions();
@@ -58,5 +59,6 @@ private:
QString m_displayName;
QString m_type;
QString m_qmake;
+ QStringList m_abis;
KeyValuePairList m_extra;
};
diff --git a/src/tools/sdktool/rmkitoperation.cpp b/src/tools/sdktool/rmkitoperation.cpp
index 5abfe9ecdd0..4e7487f40b0 100644
--- a/src/tools/sdktool/rmkitoperation.cpp
+++ b/src/tools/sdktool/rmkitoperation.cpp
@@ -105,7 +105,7 @@ bool RmKitOperation::test() const
QVariantMap qtMap = AddQtOperation::initializeQtVersions();
qtMap = AddQtOperation::addQt(qtMap, "{qt-id}", "Qt", "desktop-qt", "/usr/bin/qmake",
- KeyValuePairList());
+ KeyValuePairList(), QStringList());
QVariantMap devMap = AddDeviceOperation::initializeDevices();
devMap = AddDeviceOperation::addDevice(devMap, "{dev-id}", "Dev", 0, 0,
diff --git a/src/tools/sdktool/rmqtoperation.cpp b/src/tools/sdktool/rmqtoperation.cpp
index 292b8fdb3fe..53f3b760015 100644
--- a/src/tools/sdktool/rmqtoperation.cpp
+++ b/src/tools/sdktool/rmqtoperation.cpp
@@ -103,10 +103,11 @@ bool RmQtOperation::test() const
map = AddQtOperation::addQt(map, QLatin1String("testId"), QLatin1String("name"), QLatin1String("type"),
QLatin1String("/tmp/test"),
- KeyValuePairList() << KeyValuePair(QLatin1String("ExtraKey"), QVariant(QLatin1String("ExtraValue"))));
+ KeyValuePairList() << KeyValuePair(QLatin1String("ExtraKey"), QVariant(QLatin1String("ExtraValue"))),
+ QStringList());
map = AddQtOperation::addQt(map, QLatin1String("testId2"), QLatin1String("other name"), QLatin1String("type"),
QLatin1String("/tmp/test2"),
- KeyValuePairList());
+ KeyValuePairList(), QStringList());
result = rmQt(map, QLatin1String("nonexistant"));
if (result != map)