aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2020-05-14 12:25:40 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2020-05-14 15:22:16 +0000
commit4e708af88e5a3e6a92ef926e65eb1a9c8dbd6857 (patch)
tree76e83eebfe4ae5384a69d8b6cc59062dc2e87c13 /share
parent6d457deb910149f7b57b0a3813d75cad85681e79 (diff)
baremetal: Add IAR Renesas SH toolchain support
This commit adds a basic support of the IAR Embedded Workbench toolchain for the Renesas SH processors family: * https://www.renesas.com/cn/en/products/microcontrollers-microprocessors/superh.html Change-Id: I04a0b1d73f27898ad18cc3eb9949caaf2a0d0647 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share')
-rw-r--r--share/qbs/modules/cpp/iar.js21
1 files changed, 15 insertions, 6 deletions
diff --git a/share/qbs/modules/cpp/iar.js b/share/qbs/modules/cpp/iar.js
index 0adc116f3..50578dcc5 100644
--- a/share/qbs/modules/cpp/iar.js
+++ b/share/qbs/modules/cpp/iar.js
@@ -46,7 +46,8 @@ function supportXLinker(architecture) {
function supportILinker(architecture) {
return architecture.startsWith("arm")
|| architecture === "rh850" || architecture === "rl78"
- || architecture === "rx" || architecture === "stm8";
+ || architecture === "rx" || architecture === "stm8"
+ || architecture === "sh";
}
// It is a 'magic' IAR-specific target architecture code.
@@ -64,7 +65,7 @@ function architectureCode(architecture) {
return "43";
case "v850":
return "85";
- case "arm": case "rh850": case "rl78": case "rx": case "stm8":
+ case "arm": case "rh850": case "rl78": case "rx": case "stm8": case "sh":
return "";
}
}
@@ -93,6 +94,8 @@ function compilerName(qbs) {
return "iccrh850";
else if (architecture === "avr32")
return "iccavr32";
+ else if (architecture === "sh")
+ return "iccsh";
throw "Unable to deduce compiler name for unsupported architecture: '"
+ architecture + "'";
}
@@ -121,6 +124,8 @@ function assemblerName(qbs) {
return "a78k";
else if (architecture === "avr32")
return "aavr32";
+ else if (architecture === "sh")
+ return "iasmsh";
throw "Unable to deduce assembler name for unsupported architecture: '"
+ architecture + "'";
}
@@ -139,7 +144,8 @@ function archiverName(qbs) {
var architecture = qbs.architecture;
if (architecture.startsWith("arm")
|| architecture === "stm8" || architecture === "rl78"
- || architecture === "rx" || architecture === "rh850") {
+ || architecture === "rx" || architecture === "rh850"
+ || architecture === "sh") {
return "iarchive";
} else if (architecture === "mcs51" || architecture === "avr"
|| architecture === "msp430" || architecture === "v850"
@@ -236,6 +242,8 @@ function guessArchitecture(macros) {
return "78k";
else if (macros["__ICCAVR32__"] === "1")
return "avr32";
+ else if (macros["__ICCSH__"] === "1")
+ return "sh";
}
function guessEndianness(macros) {
@@ -255,7 +263,7 @@ function guessVersion(macros, architecture)
} else if (architecture === "mcs51" || architecture === "avr" || architecture === "stm8"
|| architecture === "msp430" || architecture === "rl78" || architecture === "rx"
|| architecture === "rh850" || architecture === "v850" || architecture === "78k"
- || architecture === "avr32") {
+ || architecture === "avr32" || architecture === "sh") {
return { major: parseInt(version / 100),
minor: parseInt(version % 100),
patch: 0,
@@ -278,6 +286,7 @@ function cppLanguageOption(compilerFilePath) {
case "iccv850":
case "icc78k":
case "iccavr32":
+ case "iccsh":
return "--ec++";
}
throw "Unable to deduce C++ language option for unsupported compiler: '"
@@ -558,7 +567,7 @@ function compilerFlags(project, product, input, outputs, explicitlyDependsOn) {
} else if (architecture === "stm8" || architecture === "mcs51"
|| architecture === "avr" || architecture === "msp430"
|| architecture === "v850" || architecture === "78k"
- || architecture === "avr32") {
+ || architecture === "avr32" || architecture === "sh") {
args.push("--ec++");
}
}
@@ -613,7 +622,7 @@ function assemblerFlags(project, product, input, outputs, explicitlyDependsOn) {
var architecture = input.qbs.architecture;
if (architecture === "stm8" || architecture === "rl78"
|| architecture === "rx" || architecture === "rh850"
- || architecture === "avr32") {
+ || architecture === "avr32" || architecture === "sh") {
// Silent output generation flag.
args.push("--silent");
// Warning level flags.