aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2020-01-05 14:48:16 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2020-01-14 14:18:41 +0000
commit7c31d4d375cff51b1f1318a05c7ded11c263448d (patch)
tree44049145078c7ca4e35b4e6accd60c36c5c1d9b7
parent07a153da3958c96060b28a2fa376f035fe33a003 (diff)
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.qdoc6
-rw-r--r--share/qbs/modules/cpp/UnixGCC.qbs2
-rw-r--r--share/qbs/modules/cpp/freebsd-gcc.qbs2
-rw-r--r--src/lib/corelib/jsextensions/utilitiesextension.cpp2
-rw-r--r--tests/auto/blackbox/testdata/undefined-target-platform/undefined-target-platform.qbs13
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp6
-rw-r--r--tests/auto/blackbox/tst_blackbox.h1
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();