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