diff options
Diffstat (limited to 'share/qbs/modules/cpp/sdcc.qbs')
-rw-r--r-- | share/qbs/modules/cpp/sdcc.qbs | 46 |
1 files changed, 31 insertions, 15 deletions
diff --git a/share/qbs/modules/cpp/sdcc.qbs b/share/qbs/modules/cpp/sdcc.qbs index c5a0893d4..0f33e9f02 100644 --- a/share/qbs/modules/cpp/sdcc.qbs +++ b/share/qbs/modules/cpp/sdcc.qbs @@ -31,8 +31,8 @@ import qbs 1.0 import qbs.File import qbs.FileInfo -import qbs.ModUtils import qbs.Probes +import "cpp.js" as Cpp import "sdcc.js" as SDCC CppModule { @@ -65,24 +65,22 @@ 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 property string linkerMode: "automatic" - compilerName: SDCC.compilerName(qbs) + compilerExtension + compilerName: "sdcc" + compilerExtension compilerPath: FileInfo.joinPaths(toolchainInstallPath, compilerName) - assemblerName: SDCC.assemblerName(qbs) + compilerExtension + assemblerName: toolchainDetails.assemblerName + compilerExtension assemblerPath: FileInfo.joinPaths(toolchainInstallPath, assemblerName) - linkerName: SDCC.linkerName(qbs) + compilerExtension + linkerName: toolchainDetails.linkerName + compilerExtension linkerPath: FileInfo.joinPaths(toolchainInstallPath, linkerName) - property string archiverName: SDCC.archiverName(qbs) + compilerExtension + property string archiverName: "sdar" + compilerExtension property string archiverPath: FileInfo.joinPaths(toolchainInstallPath, archiverName) runtimeLibrary: "static" @@ -96,11 +94,25 @@ CppModule { enableExceptions: false enableRtti: false + defineFlag: "-D" + includeFlag: "-I" + systemIncludeFlag: "-isystem" + preincludeFlag: "-include" + libraryDependencyFlag: "-l" + libraryPathFlag: "-L" + linkerScriptFlag: "-f" + + toolchainDetails: SDCC.toolchainDetails(qbs) + + knownArchitectures: ["hcs8", "mcs51", "stm8"] + Rule { id: assembler inputs: ["asm"] - outputFileTags: ["obj", "asm_adb", "lst", "asm_src", "asm_sym", "rst_data"] - outputArtifacts: SDCC.compilerOutputArtifacts(input, false) + outputFileTags: SDCC.extraCompilerOutputTags().concat( + Cpp.assemblerOutputTags(generateAssemblerListingFiles)) + outputArtifacts: SDCC.extraCompilerOutputArtifacts(input).concat( + Cpp.assemblerOutputArtifacts(input)) prepare: SDCC.prepareAssembler.apply(SDCC, arguments) } @@ -113,8 +125,10 @@ CppModule { id: compiler inputs: ["cpp", "c"] auxiliaryInputs: ["hpp"] - outputFileTags: ["obj", "asm_adb", "lst", "asm_src", "asm_sym", "rst_data"] - outputArtifacts: SDCC.compilerOutputArtifacts(input, true) + outputFileTags: SDCC.extraCompilerOutputTags().concat( + Cpp.compilerOutputTags(generateCompilerListingFiles)) + outputArtifacts: SDCC.extraCompilerOutputArtifacts(input).concat( + Cpp.compilerOutputArtifacts(input)) prepare: SDCC.prepareCompiler.apply(SDCC, arguments) } @@ -123,8 +137,10 @@ CppModule { multiplex: true inputs: ["obj", "linkerscript"] inputsFromDependencies: ["staticlibrary"] - outputFileTags: ["application", "lk_cmd", "mem_summary", "mem_map"] - outputArtifacts: SDCC.applicationLinkerOutputArtifacts(product) + outputFileTags: SDCC.extraApplicationLinkerOutputTags().concat( + Cpp.applicationLinkerOutputTags(generateLinkerMapFile)) + outputArtifacts: SDCC.extraApplicationLinkerOutputArtifacts(product).concat( + Cpp.applicationLinkerOutputArtifacts(product)) prepare: SDCC.prepareLinker.apply(SDCC, arguments) } @@ -133,8 +149,8 @@ CppModule { multiplex: true inputs: ["obj"] inputsFromDependencies: ["staticlibrary"] - outputFileTags: ["staticlibrary"] - outputArtifacts: SDCC.staticLibraryLinkerOutputArtifacts(product) + outputFileTags: Cpp.staticLibraryLinkerOutputTags() + outputArtifacts: Cpp.staticLibraryLinkerOutputArtifacts(product) prepare: SDCC.prepareArchiver.apply(SDCC, arguments) } } |