diff options
author | Denis Shienkov <denis.shienkov@gmail.com> | 2020-06-26 20:11:05 +0300 |
---|---|---|
committer | Denis Shienkov <denis.shienkov@gmail.com> | 2020-06-28 17:18:04 +0000 |
commit | dea1145d214a0bc4f082f0588b7272334b6a182a (patch) | |
tree | d80c580a20b44d8a9cbe4939c232b66813a1f573 | |
parent | 3545a25377330fb49f7a4aeacbf0bfe21adf04b2 (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.js | 6 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs | 10 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata-baremetal/BareMetalStaticLibrary.qbs | 10 |
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"] + } } |