aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2020-06-26 20:11:05 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2020-06-28 17:18:04 +0000
commitdea1145d214a0bc4f082f0588b7272334b6a182a (patch)
treed80c580a20b44d8a9cbe4939c232b66813a1f573
parent3545a25377330fb49f7a4aeacbf0bfe21adf04b2 (diff)
baremetal: Fix {c|cpp}LanguageVersion handling on KEIL ARM Clang toolchain
We need to skip the 'undefined' language version returned from the Cpp.languageVersion() function. Change-Id: I3345c2fbdde8b50c8fb9035ec10ca21e0024e6d3 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
-rw-r--r--share/qbs/modules/cpp/keil.js6
-rw-r--r--tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs10
-rw-r--r--tests/auto/blackbox/testdata-baremetal/BareMetalStaticLibrary.qbs10
3 files changed, 22 insertions, 4 deletions
diff --git a/share/qbs/modules/cpp/keil.js b/share/qbs/modules/cpp/keil.js
index d88f8bed6..b6842c321 100644
--- a/share/qbs/modules/cpp/keil.js
+++ b/share/qbs/modules/cpp/keil.js
@@ -867,14 +867,16 @@ function compilerFlags(project, product, input, outputs, explicitlyDependsOn) {
"gnu90", "gnu99", "gnu11"];
var cLanguageVersion = Cpp.languageVersion(
input.cpp.cLanguageVersion, knownCLanguageValues, "C");
- args.push("-std=" + cLanguageVersion);
+ if (cLanguageVersion)
+ args.push("-std=" + cLanguageVersion);
} else if (tag === "cpp") {
// C++ language version flags.
var knownCppLanguageValues = ["c++98", "c++03", "c++11", "c++14", "c++17",
"gnu++98", "gnu++11", "gnu++14", "gnu++17"];
var cppLanguageVersion = Cpp.languageVersion(
input.cpp.cxxLanguageVersion, knownCppLanguageValues, "C++");
- args.push("-std=" + cppLanguageVersion);
+ if (cppLanguageVersion)
+ args.push("-std=" + cppLanguageVersion);
// Exceptions flags.
var enableExceptions = input.cpp.enableExceptions;
diff --git a/tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs b/tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs
index 774fe708d..43c4043dd 100644
--- a/tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs
+++ b/tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs
@@ -1,6 +1,14 @@
CppApplication {
Properties {
- condition: qbs.toolchain.contains("keil") && qbs.architecture.startsWith("arm")
+ condition: qbs.toolchain.contains("keil")
+ && qbs.architecture.startsWith("arm")
+ && cpp.compilerName.startsWith("armcc")
cpp.driverFlags: ["--cpu", "cortex-m0"]
}
+ Properties {
+ condition: qbs.toolchain.contains("keil")
+ && qbs.architecture.startsWith("arm")
+ && cpp.compilerName.startsWith("armclang")
+ cpp.driverFlags: ["-mcpu=cortex-m0", "--target=arm-arm-none-eabi"]
+ }
}
diff --git a/tests/auto/blackbox/testdata-baremetal/BareMetalStaticLibrary.qbs b/tests/auto/blackbox/testdata-baremetal/BareMetalStaticLibrary.qbs
index a5a3ea272..ffb4fe685 100644
--- a/tests/auto/blackbox/testdata-baremetal/BareMetalStaticLibrary.qbs
+++ b/tests/auto/blackbox/testdata-baremetal/BareMetalStaticLibrary.qbs
@@ -1,6 +1,14 @@
StaticLibrary {
Properties {
- condition: qbs.toolchain.contains("keil") && qbs.architecture.startsWith("arm")
+ condition: qbs.toolchain.contains("keil")
+ && qbs.architecture.startsWith("arm")
+ && cpp.compilerName.startsWith("armcc")
cpp.driverFlags: ["--cpu", "cortex-m0"]
}
+ Properties {
+ condition: qbs.toolchain.contains("keil")
+ && qbs.architecture.startsWith("arm")
+ && cpp.compilerName.startsWith("armclang")
+ cpp.driverFlags: ["-mcpu=cortex-m0", "--target=arm-arm-none-eabi"]
+ }
}