From 9359b3c79f559422ef0582e34d27fdfb805a68ce Mon Sep 17 00:00:00 2001 From: Denis Shienkov Date: Wed, 23 Jun 2021 20:38:55 +0300 Subject: Separate Cpp.{assembler|compiler}Output{Tags|Artifacts} We need to separate the functionality of these functions, since their content will differ in the future (for example, the 'intermediate_obj' tag will be added for the compiler). Change-Id: Ife65aed95966b92a3646d73512a0a0add4cd1aac Reviewed-by: Ivan Komissarov --- share/qbs/modules/cpp/cosmic.qbs | 6 +++--- share/qbs/modules/cpp/cpp.js | 28 +++++++++++++++++++++++----- share/qbs/modules/cpp/iar.qbs | 6 +++--- share/qbs/modules/cpp/keil.qbs | 6 +++--- share/qbs/modules/cpp/sdcc.qbs | 6 +++--- 5 files changed, 35 insertions(+), 17 deletions(-) (limited to 'share/qbs/modules/cpp') diff --git a/share/qbs/modules/cpp/cosmic.qbs b/share/qbs/modules/cpp/cosmic.qbs index 6df74d0e3..acc744a5b 100644 --- a/share/qbs/modules/cpp/cosmic.qbs +++ b/share/qbs/modules/cpp/cosmic.qbs @@ -109,8 +109,8 @@ CppModule { Rule { id: assembler inputs: ["asm"] - outputFileTags: Cpp.compilerOutputTags(generateAssemblerListingFiles) - outputArtifacts: Cpp.compilerOutputArtifacts(input, false) + outputFileTags: Cpp.assemblerOutputTags(generateAssemblerListingFiles) + outputArtifacts: Cpp.assemblerOutputArtifacts(input) prepare: COSMIC.prepareAssembler.apply(COSMIC, arguments) } @@ -124,7 +124,7 @@ CppModule { inputs: ["cpp", "c"] auxiliaryInputs: ["hpp"] outputFileTags: Cpp.compilerOutputTags(generateCompilerListingFiles) - outputArtifacts: Cpp.compilerOutputArtifacts(input, true) + outputArtifacts: Cpp.compilerOutputArtifacts(input) prepare: COSMIC.prepareCompiler.apply(COSMIC, arguments) } diff --git a/share/qbs/modules/cpp/cpp.js b/share/qbs/modules/cpp/cpp.js index 49ed678df..1e153e8ba 100644 --- a/share/qbs/modules/cpp/cpp.js +++ b/share/qbs/modules/cpp/cpp.js @@ -63,6 +63,13 @@ function extractMacros(output) { return m; } +function assemblerOutputTags(needsListingFiles) { + var tags = ["obj"]; + if (needsListingFiles) + tags.push("lst"); + return tags; +} + function compilerOutputTags(needsListingFiles) { var tags = ["obj"]; if (needsListingFiles) @@ -81,24 +88,35 @@ function staticLibraryLinkerOutputTags() { return ["staticlibrary"]; } -function compilerOutputArtifacts(input, isCompilerArtifacts) { +function assemblerOutputArtifacts(input) { var artifacts = []; artifacts.push({ fileTags: ["obj"], filePath: Utilities.getHash(input.baseDir) + "/" + input.fileName + input.cpp.objectSuffix }); - if (isCompilerArtifacts && input.cpp.generateCompilerListingFiles) { + if (input.cpp.generateAssemblerListingFiles) { artifacts.push({ fileTags: ["lst"], filePath: Utilities.getHash(input.baseDir) + "/" - + input.fileName + input.cpp.compilerListingSuffix + + input.fileName + input.cpp.assemblerListingSuffix }); - } else if (!isCompilerArtifacts && input.cpp.generateAssemblerListingFiles) { + } + return artifacts; +} + +function compilerOutputArtifacts(input) { + var artifacts = []; + artifacts.push({ + fileTags: ["obj"], + filePath: Utilities.getHash(input.baseDir) + "/" + + input.fileName + input.cpp.objectSuffix + }); + if (input.cpp.generateCompilerListingFiles) { artifacts.push({ fileTags: ["lst"], filePath: Utilities.getHash(input.baseDir) + "/" - + input.fileName + input.cpp.assemblerListingSuffix + + input.fileName + input.cpp.compilerListingSuffix }); } return artifacts; diff --git a/share/qbs/modules/cpp/iar.qbs b/share/qbs/modules/cpp/iar.qbs index e782e3ee1..79d4a0720 100644 --- a/share/qbs/modules/cpp/iar.qbs +++ b/share/qbs/modules/cpp/iar.qbs @@ -114,8 +114,8 @@ CppModule { Rule { id: assembler inputs: ["asm"] - outputFileTags: Cpp.compilerOutputTags(generateAssemblerListingFiles) - outputArtifacts: Cpp.compilerOutputArtifacts(input, false) + outputFileTags: Cpp.assemblerOutputTags(generateAssemblerListingFiles) + outputArtifacts: Cpp.assemblerOutputArtifacts(input) prepare: IAR.prepareAssembler.apply(IAR, arguments) } @@ -129,7 +129,7 @@ CppModule { inputs: ["cpp", "c"] auxiliaryInputs: ["hpp"] outputFileTags: Cpp.compilerOutputTags(generateCompilerListingFiles) - outputArtifacts: Cpp.compilerOutputArtifacts(input, true) + outputArtifacts: Cpp.compilerOutputArtifacts(input) prepare: IAR.prepareCompiler.apply(IAR, arguments) } diff --git a/share/qbs/modules/cpp/keil.qbs b/share/qbs/modules/cpp/keil.qbs index 6dad0f0e6..8e4d98402 100644 --- a/share/qbs/modules/cpp/keil.qbs +++ b/share/qbs/modules/cpp/keil.qbs @@ -110,8 +110,8 @@ CppModule { Rule { id: assembler inputs: ["asm"] - outputFileTags: Cpp.compilerOutputTags(generateAssemblerListingFiles) - outputArtifacts: Cpp.compilerOutputArtifacts(input, false) + outputFileTags: Cpp.assemblerOutputTags(generateAssemblerListingFiles) + outputArtifacts: Cpp.assemblerOutputArtifacts(input) prepare: KEIL.prepareAssembler.apply(KEIL, arguments) } @@ -125,7 +125,7 @@ CppModule { inputs: ["cpp", "c"] auxiliaryInputs: ["hpp"] outputFileTags: Cpp.compilerOutputTags(generateCompilerListingFiles) - outputArtifacts: Cpp.compilerOutputArtifacts(input, true) + outputArtifacts: Cpp.compilerOutputArtifacts(input) prepare: KEIL.prepareCompiler.apply(KEIL, arguments) } diff --git a/share/qbs/modules/cpp/sdcc.qbs b/share/qbs/modules/cpp/sdcc.qbs index f35e845fd..0f33e9f02 100644 --- a/share/qbs/modules/cpp/sdcc.qbs +++ b/share/qbs/modules/cpp/sdcc.qbs @@ -110,9 +110,9 @@ CppModule { id: assembler inputs: ["asm"] outputFileTags: SDCC.extraCompilerOutputTags().concat( - Cpp.compilerOutputTags(generateAssemblerListingFiles)) + Cpp.assemblerOutputTags(generateAssemblerListingFiles)) outputArtifacts: SDCC.extraCompilerOutputArtifacts(input).concat( - Cpp.compilerOutputArtifacts(input, false)) + Cpp.assemblerOutputArtifacts(input)) prepare: SDCC.prepareAssembler.apply(SDCC, arguments) } @@ -128,7 +128,7 @@ CppModule { outputFileTags: SDCC.extraCompilerOutputTags().concat( Cpp.compilerOutputTags(generateCompilerListingFiles)) outputArtifacts: SDCC.extraCompilerOutputArtifacts(input).concat( - Cpp.compilerOutputArtifacts(input, true)) + Cpp.compilerOutputArtifacts(input)) prepare: SDCC.prepareCompiler.apply(SDCC, arguments) } -- cgit v1.2.1