diff options
-rw-r--r-- | src/plugins/qtsupport/baseqtversion.cpp | 8 | ||||
-rw-r--r-- | src/tools/sdktool/addkitoperation.cpp | 2 | ||||
-rw-r--r-- | src/tools/sdktool/addqtoperation.cpp | 44 | ||||
-rw-r--r-- | src/tools/sdktool/addqtoperation.h | 4 | ||||
-rw-r--r-- | src/tools/sdktool/rmkitoperation.cpp | 2 | ||||
-rw-r--r-- | src/tools/sdktool/rmqtoperation.cpp | 5 |
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) |