aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/cpp/iar.js
diff options
context:
space:
mode:
Diffstat (limited to 'share/qbs/modules/cpp/iar.js')
-rw-r--r--share/qbs/modules/cpp/iar.js35
1 files changed, 30 insertions, 5 deletions
diff --git a/share/qbs/modules/cpp/iar.js b/share/qbs/modules/cpp/iar.js
index 33093c0a3..ddaa00e2d 100644
--- a/share/qbs/modules/cpp/iar.js
+++ b/share/qbs/modules/cpp/iar.js
@@ -47,6 +47,8 @@ function guessArchitecture(macros)
return "mcs51";
else if (macros["__ICCAVR__"] === "1")
return "avr";
+ else if (macros["__ICCSTM8__"] === "1")
+ return "stm8";
}
function guessEndianness(macros)
@@ -248,6 +250,8 @@ function compilerFlags(project, product, input, output, explicitlyDependsOn) {
args.push("--ec++");
} else if (input.qbs.architecture === "avr") {
args.push("--ec++");
+ } else if (input.qbs.architecture === "stm8") {
+ args.push("--ec++");
}
}
@@ -295,10 +299,20 @@ function assemblerFlags(project, product, input, output, explicitlyDependsOn) {
args.push("-r");
var warnings = input.cpp.warningLevel;
- if (warnings === "none")
- args.push("-w-");
- else
- args.push("-w+");
+ if (warnings === "none") {
+ if (input.qbs.architecture === "stm8")
+ args.push("--no_warnings");
+ else
+ args.push("-w-");
+ } else {
+ if (input.qbs.architecture !== "stm8")
+ args.push("-w+");
+ }
+
+ if (input.cpp.treatWarningsAsErrors) {
+ if (input.qbs.architecture === "stm8")
+ args.push("--warnings_are_errors");
+ }
var allIncludePaths = [];
var systemIncludePaths = input.cpp.systemIncludePaths;
@@ -311,7 +325,10 @@ function assemblerFlags(project, product, input, output, explicitlyDependsOn) {
args.push("-o", output.filePath);
- args.push("-S"); // Silent operation.
+ if (input.qbs.architecture === "stm8")
+ args.push("--silent"); // Silent operation.
+ else
+ args.push("-S"); // Silent operation.
args = args.concat(ModUtils.moduleProperty(input, "platformFlags", tag),
ModUtils.moduleProperty(input, "flags", tag),
@@ -335,6 +352,8 @@ function linkerFlags(project, product, input, outputs) {
args.push("-l", outputs.map_file[0].filePath);
else if (product.qbs.architecture === "avr")
args.push("-l", outputs.map_file[0].filePath);
+ else if (product.qbs.architecture === "stm8")
+ args.push("--map", outputs.map_file[0].filePath);
}
var allLibraryPaths = [];
@@ -366,6 +385,8 @@ function linkerFlags(project, product, input, outputs) {
args.push("-f", linkerScripts[i]);
else if (product.qbs.architecture === "avr")
args.push("-f", linkerScripts[i]);
+ else if (product.qbs.architecture === "stm8")
+ args.push("--config", linkerScripts[i]);
}
if (product.cpp.entryPoint) {
@@ -375,6 +396,8 @@ function linkerFlags(project, product, input, outputs) {
args.push("-s", product.cpp.entryPoint);
else if (product.qbs.architecture === "avr")
args.push("-s", product.cpp.entryPoint);
+ else if (product.qbs.architecture === "stm8")
+ args.push("--entry", product.cpp.entryPoint);
}
if (product.qbs.architecture === "arm")
@@ -383,6 +406,8 @@ function linkerFlags(project, product, input, outputs) {
args.push("-S"); // Silent operation.
else if (product.qbs.architecture === "avr")
args.push("-S"); // Silent operation.
+ else if (product.qbs.architecture === "stm8")
+ args.push("--silent"); // Silent operation.
args = args.concat(ModUtils.moduleProperty(product, "driverLinkerFlags"));
return args;