aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorIvan Komissarov <ABBAPOH@gmail.com>2020-03-21 01:15:40 +0100
committerIvan Komissarov <ABBAPOH@gmail.com>2020-03-23 13:06:12 +0000
commitc748f199e40698ff8280b87718a3a4375c1a2917 (patch)
tree4551369f5b7c89834a9f7b809c8d6b352cfcf1c3 /share
parentee0b4e1fed81e63685f4b6deb30e4893b9193820 (diff)
baremetal: Fix detecting older sdcc compiler
Ubuntu Bionic has slightly older compiler version (3.5.0) which doesn't have macros that are used to detect compiler version. But it has the "__SDCC" macro containing the value "3_5_0". Use that as a fallback. Change-Id: I0bac78b684e64f11d00f8d915f806f7662d99766 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share')
-rw-r--r--share/qbs/modules/cpp/sdcc.js22
1 files changed, 18 insertions, 4 deletions
diff --git a/share/qbs/modules/cpp/sdcc.js b/share/qbs/modules/cpp/sdcc.js
index 70d0506b9..147fa160f 100644
--- a/share/qbs/modules/cpp/sdcc.js
+++ b/share/qbs/modules/cpp/sdcc.js
@@ -90,10 +90,24 @@ function guessEndianness(macros) {
}
function guessVersion(macros) {
- return { major: parseInt(macros["__SDCC_VERSION_MAJOR"], 10),
- minor: parseInt(macros["__SDCC_VERSION_MINOR"], 10),
- patch: parseInt(macros["__SDCC_VERSION_PATCH"], 10),
- found: macros["SDCC"] }
+ if ("__SDCC_VERSION_MAJOR" in macros
+ && "__SDCC_VERSION_MINOR" in macros
+ && "__SDCC_VERSION_PATCH" in macros) {
+ return { major: parseInt(macros["__SDCC_VERSION_MAJOR"], 10),
+ minor: parseInt(macros["__SDCC_VERSION_MINOR"], 10),
+ patch: parseInt(macros["__SDCC_VERSION_PATCH"], 10),
+ found: macros["SDCC"] }
+ } else if ("__SDCC" in macros) {
+ var versions = macros["__SDCC"].split("_");
+ if (versions.length === 3) {
+ return {
+ major: parseInt(versions[0], 10),
+ minor: parseInt(versions[1], 10),
+ patch: parseInt(versions[2], 10),
+ found: macros["SDCC"] };
+ }
+ }
+ return { found: false };
}
function dumpMacros(compilerFilePath, architecture) {