diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2020-01-05 14:48:16 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2020-01-14 14:18:41 +0000 |
commit | 7c31d4d375cff51b1f1318a05c7ded11c263448d (patch) | |
tree | 44049145078c7ca4e35b4e6accd60c36c5c1d9b7 | |
parent | 07a153da3958c96060b28a2fa376f035fe33a003 (diff) | |
download | qbs-7c31d4d375cff51b1f1318a05c7ded11c263448d.tar.gz |
Use an empty array for the qbs.targetOS if targetPlatform is undefined
Change-Id: I4bc1ff7cacb606e4baa9f2bfe59b8dca1b88e434
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | doc/reference/modules/qbs-module.qdoc | 6 | ||||
-rw-r--r-- | share/qbs/modules/cpp/UnixGCC.qbs | 2 | ||||
-rw-r--r-- | share/qbs/modules/cpp/freebsd-gcc.qbs | 2 | ||||
-rw-r--r-- | src/lib/corelib/jsextensions/utilitiesextension.cpp | 2 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata/undefined-target-platform/undefined-target-platform.qbs | 13 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.cpp | 6 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.h | 1 |
7 files changed, 29 insertions, 3 deletions
diff --git a/doc/reference/modules/qbs-module.qdoc b/doc/reference/modules/qbs-module.qdoc index c1baa7ee0..1fdfe6f7c 100644 --- a/doc/reference/modules/qbs-module.qdoc +++ b/doc/reference/modules/qbs-module.qdoc @@ -255,6 +255,9 @@ \li \c{"tvos-simulator"} \li \c{["tvos-simulator", "tvos", "darwin", "bsd", "unix"]} \row + \li \c{"unix"} + \li \c{["unix"]} + \row \li \c{"vxworks"} \li \c{["vxworks"]} \row @@ -266,6 +269,9 @@ \row \li \c{"windows"} \li \c{["windows"]} + \row + \li \c{undefined} + \li \c{[]} \endtable \sa {Target Platforms} diff --git a/share/qbs/modules/cpp/UnixGCC.qbs b/share/qbs/modules/cpp/UnixGCC.qbs index e5b99cd98..68eacea3f 100644 --- a/share/qbs/modules/cpp/UnixGCC.qbs +++ b/share/qbs/modules/cpp/UnixGCC.qbs @@ -32,7 +32,7 @@ import qbs.File GenericGCC { condition: qbs.toolchain && qbs.toolchain.contains("gcc") - && qbs.targetOS && qbs.targetOS.contains("unix") + && qbs.targetOS.contains("unix") priority: -50 staticLibraryPrefix: "lib" diff --git a/share/qbs/modules/cpp/freebsd-gcc.qbs b/share/qbs/modules/cpp/freebsd-gcc.qbs index b5a4b89f3..929c4e557 100644 --- a/share/qbs/modules/cpp/freebsd-gcc.qbs +++ b/share/qbs/modules/cpp/freebsd-gcc.qbs @@ -31,7 +31,7 @@ import "freebsd.js" as FreeBSD UnixGCC { - condition: qbs.targetOS && qbs.targetOS.contains("freebsd") && + condition: qbs.targetOS.contains("freebsd") && qbs.toolchain && qbs.toolchain.contains("gcc") priority: 1 diff --git a/src/lib/corelib/jsextensions/utilitiesextension.cpp b/src/lib/corelib/jsextensions/utilitiesextension.cpp index b425bb4a2..80ff6539e 100644 --- a/src/lib/corelib/jsextensions/utilitiesextension.cpp +++ b/src/lib/corelib/jsextensions/utilitiesextension.cpp @@ -132,7 +132,7 @@ QScriptValue UtilitiesExtension::js_canonicalPlatform(QScriptContext *context, { const QScriptValue value = context->argument(0); if (value.isUndefined() || value.isNull()) - return value; + return engine->toScriptValue(QStringList()); if (context->argumentCount() == 1 && value.isString()) { return engine->toScriptValue([&value] { diff --git a/tests/auto/blackbox/testdata/undefined-target-platform/undefined-target-platform.qbs b/tests/auto/blackbox/testdata/undefined-target-platform/undefined-target-platform.qbs new file mode 100644 index 000000000..2b3724c26 --- /dev/null +++ b/tests/auto/blackbox/testdata/undefined-target-platform/undefined-target-platform.qbs @@ -0,0 +1,13 @@ +import qbs.File +import qbs.FileInfo + +Product { + name: "undefined-target-platform" + qbs.targetPlatform: undefined + + readonly property bool _validate: { + if (Array.isArray(qbs.targetOS) && qbs.targetOS.length === 0) + return true; + throw "Invalid qbs.targetOS value: " + qbs.targetOS; + } +} diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 0c9b7222e..586471e61 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -7032,6 +7032,12 @@ void TestBlackbox::typescript() QVERIFY(regularFileExists(relativeProductBuildDir("animals") + "/main.js")); } +void TestBlackbox::undefinedTargetPlatform() +{ + QDir::setCurrent(testDataDir + "/undefined-target-platform"); + QCOMPARE(runQbs(), 0); +} + void TestBlackbox::importInPropertiesCondition() { QDir::setCurrent(testDataDir + "/import-in-properties-condition"); diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index b2aef11e6..35656f3f1 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -302,6 +302,7 @@ private slots: void trackRemoveProduct(); void transitiveOptionalDependencies(); void typescript(); + void undefinedTargetPlatform(); void usingsAsSoleInputsNonMultiplexed(); void variantSuffix(); void variantSuffix_data(); |