diff options
Diffstat (limited to 'share/qbs/modules/cpp/iar.qbs')
-rw-r--r-- | share/qbs/modules/cpp/iar.qbs | 54 |
1 files changed, 35 insertions, 19 deletions
diff --git a/share/qbs/modules/cpp/iar.qbs b/share/qbs/modules/cpp/iar.qbs index 9709695c1..79d4a0720 100644 --- a/share/qbs/modules/cpp/iar.qbs +++ b/share/qbs/modules/cpp/iar.qbs @@ -31,10 +31,10 @@ import qbs 1.0 import qbs.File import qbs.FileInfo -import qbs.ModUtils import qbs.PathTools import qbs.Probes import qbs.Utilities +import "cpp.js" as Cpp import "iar.js" as IAR CppModule { @@ -66,40 +66,56 @@ CppModule { toolchainInstallPath: compilerPathProbe.found ? compilerPathProbe.path : undefined - property string compilerExtension: qbs.hostOS.contains("windows") ? ".exe" : "" - /* Work-around for QtCreator which expects these properties to exist. */ property string cCompilerName: compilerName property string cxxCompilerName: compilerName - compilerName: IAR.compilerName(qbs) + compilerExtension + compilerName: toolchainDetails.compilerName + compilerExtension compilerPath: FileInfo.joinPaths(toolchainInstallPath, compilerName) - assemblerName: IAR.assemblerName(qbs) + compilerExtension + assemblerName: toolchainDetails.assemblerName + compilerExtension assemblerPath: FileInfo.joinPaths(toolchainInstallPath, assemblerName) - linkerName: IAR.linkerName(qbs) + compilerExtension + linkerName: toolchainDetails.linkerName + compilerExtension linkerPath: FileInfo.joinPaths(toolchainInstallPath, linkerName) - property string archiverName: IAR.archiverName(qbs) + compilerExtension + property string archiverName: toolchainDetails.archiverName + compilerExtension property string archiverPath: FileInfo.joinPaths(toolchainInstallPath, archiverName) runtimeLibrary: "static" - staticLibrarySuffix: IAR.staticLibrarySuffix(qbs) - executableSuffix: IAR.executableSuffix(qbs) - objectSuffix: IAR.objectSuffix(qbs) + staticLibrarySuffix: toolchainDetails.staticLibrarySuffix + executableSuffix: toolchainDetails.executableSuffix + objectSuffix: toolchainDetails.objectSuffix - imageFormat: IAR.imageFormat(qbs) + imageFormat: toolchainDetails.imageFormat enableExceptions: false enableRtti: false + defineFlag: "-D" + includeFlag: "-I" + systemIncludeFlag: "-I" + preincludeFlag: "--preinclude" + libraryDependencyFlag: "" + libraryPathFlag: toolchainDetails.libraryPathFlag + linkerScriptFlag: toolchainDetails.linkerScriptFlag + + property string linkerSilentFlag: toolchainDetails.linkerSilentFlag + property string linkerMapFileFlag: toolchainDetails.linkerMapFileFlag + property string linkerEntryPointFlag: toolchainDetails.linkerEntryPointFlag + + toolchainDetails: IAR.toolchainDetails(qbs) + + knownArchitectures: ["78k", "arm", "avr", "avr32", "cr16", + "hcs12", "hcs8", "m16c", "m32c", "m68k", "mcs51", "msp430", + "r32c", "rh850", "riscv", "rl78", "rx", "sh", "stm8", "v850"] + Rule { id: assembler inputs: ["asm"] - outputFileTags: ["obj", "lst"] - outputArtifacts: IAR.compilerOutputArtifacts(input, false) + outputFileTags: Cpp.assemblerOutputTags(generateAssemblerListingFiles) + outputArtifacts: Cpp.assemblerOutputArtifacts(input) prepare: IAR.prepareAssembler.apply(IAR, arguments) } @@ -112,8 +128,8 @@ CppModule { id: compiler inputs: ["cpp", "c"] auxiliaryInputs: ["hpp"] - outputFileTags: ["obj", "lst"] - outputArtifacts: IAR.compilerOutputArtifacts(input, true) + outputFileTags: Cpp.compilerOutputTags(generateCompilerListingFiles) + outputArtifacts: Cpp.compilerOutputArtifacts(input) prepare: IAR.prepareCompiler.apply(IAR, arguments) } @@ -122,8 +138,8 @@ CppModule { multiplex: true inputs: ["obj", "linkerscript"] inputsFromDependencies: ["staticlibrary"] - outputFileTags: ["application", "mem_map"] - outputArtifacts: IAR.applicationLinkerOutputArtifacts(product) + outputFileTags: Cpp.applicationLinkerOutputTags(generateLinkerMapFile) + outputArtifacts: Cpp.applicationLinkerOutputArtifacts(product) prepare: IAR.prepareLinker.apply(IAR, arguments) } @@ -132,8 +148,8 @@ CppModule { multiplex: true inputs: ["obj"] inputsFromDependencies: ["staticlibrary"] - outputFileTags: ["staticlibrary"] - outputArtifacts: IAR.staticLibraryLinkerOutputArtifacts(product) + outputFileTags: Cpp.staticLibraryLinkerOutputTags() + outputArtifacts: Cpp.staticLibraryLinkerOutputArtifacts(product) prepare: IAR.prepareArchiver.apply(IAR, arguments) } } |