diff options
Diffstat (limited to 'share/qbs/modules/cpp/sdcc.js')
-rw-r--r-- | share/qbs/modules/cpp/sdcc.js | 22 |
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) { |