Hello community,

here is the log from the commit of package qbs for openSUSE:Factory checked in 
at 2019-12-07 15:10:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qbs (Old)
 and      /work/SRC/openSUSE:Factory/.qbs.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qbs"

Sat Dec  7 15:10:10 2019 rev:6 rq:754869 version:1.14.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/qbs/qbs.changes  2019-10-12 22:37:59.698508989 
+0200
+++ /work/SRC/openSUSE:Factory/.qbs.new.4691/qbs.changes        2019-12-07 
15:10:52.171834237 +0100
@@ -1,0 +2,6 @@
+Sat Dec  7 08:56:25 UTC 2019 - Christophe Giboudeaux <[email protected]>
+
+- Update to 1.14.1
+  * Qt support: Fix static builds with Qt >= 5.13.1.
+
+-------------------------------------------------------------------

Old:
----
  qbs-src-1.14.0.tar.gz

New:
----
  qbs-src-1.14.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qbs.spec ++++++
--- /var/tmp/diff_new_pack.uZNE2R/_old  2019-12-07 15:10:54.879833854 +0100
+++ /var/tmp/diff_new_pack.uZNE2R/_new  2019-12-07 15:10:54.883833853 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package qbs
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LLC
 # Copyright (c) 2018 The Qt Company.
 #
 # All modifications and additions to the file contributed by third parties
@@ -19,7 +19,7 @@
 
 %define qt5_version 5.11.0
 Name:           qbs
-Version:        1.14.0
+Version:        1.14.1
 Release:        0
 Summary:        Modern build tool for software projects
 License:        (LGPL-2.1-with-Qt-Company-Qt-exception-1.1 OR LGPL-3.0-only) 
AND GPL-3.0-with-Qt-Company-Qt-exception-1.1

++++++ qbs-src-1.14.0.tar.gz -> qbs-src-1.14.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qbs-src-1.14.0/VERSION new/qbs-src-1.14.1/VERSION
--- old/qbs-src-1.14.0/VERSION  2019-09-27 16:41:37.000000000 +0200
+++ new/qbs-src-1.14.1/VERSION  2019-10-16 15:22:00.000000000 +0200
@@ -1 +1 @@
-1.14.0
+1.14.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qbs-src-1.14.0/changelogs/changes-1.14.1.md 
new/qbs-src-1.14.1/changelogs/changes-1.14.1.md
--- old/qbs-src-1.14.0/changelogs/changes-1.14.1.md     1970-01-01 
01:00:00.000000000 +0100
+++ new/qbs-src-1.14.1/changelogs/changes-1.14.1.md     2019-10-16 
15:22:00.000000000 +0200
@@ -0,0 +1,4 @@
+# Important bugfixes
+* Qt support: Fix static builds on Windows (QBS-1465).
+* Qt support: Fix static builds with Qt >= 5.13.1.
+* Darwin: Adapt to Xcode 11.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qbs-src-1.14.0/share/qbs/imports/qbs/DarwinTools/darwin-tools.js 
new/qbs-src-1.14.1/share/qbs/imports/qbs/DarwinTools/darwin-tools.js
--- old/qbs-src-1.14.0/share/qbs/imports/qbs/DarwinTools/darwin-tools.js        
2019-09-27 16:41:37.000000000 +0200
+++ new/qbs-src-1.14.1/share/qbs/imports/qbs/DarwinTools/darwin-tools.js        
2019-10-16 15:22:00.000000000 +0200
@@ -162,17 +162,17 @@
           * Finds the first index of a replacement starting with one of the 
supported syntaxes
           * This is needed so we don't do recursive substitutions
           */
-        function indexOfReplacementStart(syntaxes, str, offset) {
+        function indexOfReplacementStart(syntaxes, str) {
             var syntax;
-            var idx = str.length;
+            var idx = -1;
             for (var i in syntaxes) {
-                var j = str.indexOf(syntaxes[i].open, offset);
-                if (j !== -1 && j < idx) {
+                var j = str.lastIndexOf(syntaxes[i].open);
+                if (j > idx) {
                     syntax = syntaxes[i];
                     idx = j;
                 }
             }
-            return { "syntax": syntax, "index": idx === str.length ? -1 : idx 
};
+            return { "syntax": syntax, "index": idx };
         }
 
         function expandRecursive(obj, env, checked) {
@@ -202,19 +202,16 @@
                         // skip replacement
                         if ($this.undefinedVariableFunction)
                             $this.undefinedVariableFunction(key, varName);
-                        i = j + repl.syntax.close.length;
-                    } else {
-                        changes = true;
-                        varValue = String(varValue);
-                        if (varFormatter !== undefined)
-                            varFormatter = varFormatter.toLowerCase();
-                        if (varFormatter === "rfc1034identifier")
-                            varValue = Utilities.rfc1034Identifier(varValue);
-                        value = value.slice(0, i) + varValue + value.slice(j + 
repl.syntax.close.length);
-                        // avoid recursive substitutions to avoid potentially 
infinite loops
-                        i += varValue.length;
+                        varValue = "";
                     }
-                    repl = indexOfReplacementStart(syntaxes, value, i);
+                    varValue = String(varValue);
+                    if (varFormatter !== undefined)
+                        varFormatter = varFormatter.toLowerCase();
+                    if (varFormatter === "rfc1034identifier")
+                        varValue = Utilities.rfc1034Identifier(varValue);
+                    value = value.slice(0, i) + varValue + value.slice(j + 
repl.syntax.close.length);
+                    changes = true;
+                    repl = indexOfReplacementStart(syntaxes, value);
                     i = repl.index;
                 }
                 if (changes)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qbs-src-1.14.0/share/qbs/module-providers/Qt/templates/qml.js 
new/qbs-src-1.14.1/share/qbs/module-providers/Qt/templates/qml.js
--- old/qbs-src-1.14.0/share/qbs/module-providers/Qt/templates/qml.js   
2019-09-27 16:41:37.000000000 +0200
+++ new/qbs-src-1.14.1/share/qbs/module-providers/Qt/templates/qml.js   
2019-10-16 15:22:00.000000000 +0200
@@ -50,14 +50,14 @@
                 continue;
             if (line.startsWith("QMAKE_PRL_TARGET"))
                 pluginLib = FileInfo.joinPaths(pluginData.path, 
getPrlRhs(line));
-            if (line.startsWith("QMAKE_PRL_LIBS")) {
+            if (line.startsWith("QMAKE_PRL_LIBS = ")) {
                 var otherLibsLine = ' ' + getPrlRhs(line);
                 if (toolchain.contains("msvc")) {
                     otherLibsLine = otherLibsLine.replace(/ -L/g, " 
/LIBPATH:");
                     otherLibsLine = otherLibsLine.replace(/-l([^ ]+)/g, "$1" + 
".lib");
                 }
                 otherLibsLine = 
otherLibsLine.replace(/\$\$\[QT_INSTALL_LIBS\]/g, qtLibDir);
-                otherLibs += otherLibsLine;
+                otherLibs += otherLibsLine + '\n';
             }
         }
         if (!pluginLib)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qbs-src-1.14.0/share/qbs/modules/bundle/BundleModule.qbs 
new/qbs-src-1.14.1/share/qbs/modules/bundle/BundleModule.qbs
--- old/qbs-src-1.14.0/share/qbs/modules/bundle/BundleModule.qbs        
2019-09-27 16:41:37.000000000 +0200
+++ new/qbs-src-1.14.1/share/qbs/modules/bundle/BundleModule.qbs        
2019-10-16 15:22:00.000000000 +0200
@@ -63,9 +63,13 @@
             "GENERATE_PKGINFO_FILE": generatePackageInfo !== undefined
                                      ? (generatePackageInfo ? "YES" : "NO")
                                      : undefined,
+            "IS_MACCATALYST": "NO",
+            "LD_RUNPATH_SEARCH_PATHS_NO": [],
             "PRODUCT_NAME": product.targetName,
             "LOCAL_APPS_DIR": Environment.getEnv("HOME") + "/Applications",
             "LOCAL_LIBRARY_DIR": Environment.getEnv("HOME") + "/Library",
+            "SWIFT_PLATFORM_TARGET_PREFIX": isMacOs ? "macos"
+                                                    : 
qbs.targetOS.contains("ios") ? "ios" : "",
             "TARGET_BUILD_DIR": product.buildDirectory,
             "WRAPPER_NAME": bundleName,
             "WRAPPER_EXTENSION": extension
@@ -427,7 +431,7 @@
                                 || {};
                         for (key in partialInfoPlist) {
                             if (partialInfoPlist.hasOwnProperty(key)
-                                    && !aggregatePlist.hasOwnProperty(key))
+                                    && aggregatePlist[key] === undefined)
                                 aggregatePlist[key] = partialInfoPlist[key];
                         }
                     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qbs-src-1.14.0/share/qbs/modules/cpp/keil.js 
new/qbs-src-1.14.1/share/qbs/modules/cpp/keil.js
--- old/qbs-src-1.14.0/share/qbs/modules/cpp/keil.js    2019-09-27 
16:41:37.000000000 +0200
+++ new/qbs-src-1.14.1/share/qbs/modules/cpp/keil.js    2019-10-16 
15:22:00.000000000 +0200
@@ -33,6 +33,7 @@
 var File = require("qbs.File");
 var FileInfo = require("qbs.FileInfo");
 var ModUtils = require("qbs.ModUtils");
+var PathTools = require("qbs.PathTools");
 var Process = require("qbs.Process");
 var TemporaryDir = require("qbs.TemporaryDir");
 var TextFile = require("qbs.TextFile");
@@ -246,6 +247,42 @@
     };
 }
 
+function compilerOutputArtifacts(input) {
+    var obj = {
+        fileTags: ["obj"],
+        filePath: Utilities.getHash(input.baseDir) + "/"
+              + input.fileName + input.cpp.objectSuffix
+    };
+    return [obj];
+}
+
+function applicationLinkerOutputArtifacts(product) {
+    var app = {
+        fileTags: ["application"],
+        filePath: FileInfo.joinPaths(
+                      product.destinationDirectory,
+                      PathTools.applicationFilePath(product))
+    };
+    var mem_map = {
+        fileTags: ["mem_map"],
+        filePath: FileInfo.joinPaths(
+                      product.destinationDirectory,
+                      product.targetName
+                      + (product.cpp.architecture === "mcs51" ? ".m51" : 
".map"))
+    };
+    return [app, mem_map]
+}
+
+function staticLibraryLinkerOutputArtifacts(product) {
+    var staticLib = {
+        fileTags: ["staticlibrary"],
+        filePath: FileInfo.joinPaths(
+                      product.destinationDirectory,
+                      PathTools.staticLibraryFilePath(product))
+    };
+    return [staticLib]
+}
+
 function compilerFlags(project, product, input, output, explicitlyDependsOn) {
     // Determine which C-language we"re compiling.
     var tag = 
ModUtils.fileTagForTargetLanguage(input.fileTags.concat(output.fileTags));
@@ -474,7 +511,7 @@
         args.push("--output", outputs.application[0].filePath);
 
         if (product.cpp.generateMapFile)
-            args.push("--list", outputs.map_file[0].filePath);
+            args.push("--list", outputs.mem_map[0].filePath);
 
         var libraryPaths = product.cpp.libraryPaths;
         if (libraryPaths)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qbs-src-1.14.0/share/qbs/modules/cpp/keil.qbs 
new/qbs-src-1.14.1/share/qbs/modules/cpp/keil.qbs
--- old/qbs-src-1.14.0/share/qbs/modules/cpp/keil.qbs   2019-09-27 
16:41:37.000000000 +0200
+++ new/qbs-src-1.14.1/share/qbs/modules/cpp/keil.qbs   2019-10-16 
15:22:00.000000000 +0200
@@ -32,9 +32,7 @@
 import qbs.File
 import qbs.FileInfo
 import qbs.ModUtils
-import qbs.PathTools
 import qbs.Probes
-import qbs.Utilities
 import "keil.js" as KEIL
 
 CppModule {
@@ -164,14 +162,9 @@
     Rule {
         id: assembler
         inputs: ["asm"]
-
-        Artifact {
-            fileTags: ["obj"]
-            filePath: Utilities.getHash(input.baseDir) + "/"
-                      + input.fileName + input.cpp.objectSuffix
-        }
-
-        prepare: KEIL.prepareAssembler.apply(KEIL, arguments);
+        outputFileTags: ["obj"]
+        outputArtifacts: KEIL.compilerOutputArtifacts(input)
+        prepare: KEIL.prepareAssembler.apply(KEIL, arguments)
     }
 
     FileTagger {
@@ -190,47 +183,18 @@
         id: compiler
         inputs: ["cpp", "c"]
         auxiliaryInputs: ["hpp"]
-
-        Artifact {
-            fileTags: ["obj"]
-            filePath: Utilities.getHash(input.baseDir) + "/"
-                      + input.fileName + input.cpp.objectSuffix
-        }
-
-        prepare: KEIL.prepareCompiler.apply(KEIL, arguments);
+        outputFileTags: ["obj"]
+        outputArtifacts: KEIL.compilerOutputArtifacts(input)
+        prepare: KEIL.prepareCompiler.apply(KEIL, arguments)
     }
 
     Rule {
         id: applicationLinker
         multiplex: true
         inputs: ["obj", "linkerscript"]
-
-        outputFileTags: {
-            var tags = ["application"];
-            if (product.moduleProperty("cpp", "generateMapFile"))
-                tags.push("map_file");
-            return tags;
-        }
-        outputArtifacts: {
-            var app = {
-                fileTags: ["application"],
-                filePath: FileInfo.joinPaths(
-                              product.destinationDirectory,
-                              PathTools.applicationFilePath(product))
-            };
-            var artifacts = [app];
-            if (product.cpp.generateMapFile) {
-                artifacts.push({
-                    fileTags: ["map_file"],
-                filePath: FileInfo.joinPaths(
-                              product.destinationDirectory,
-                              product.targetName + ".map")
-                });
-            }
-            return artifacts;
-        }
-
-        prepare:KEIL.prepareLinker.apply(KEIL, arguments);
+        outputFileTags: ["application", "mem_map"]
+        outputArtifacts: KEIL.applicationLinkerOutputArtifacts(product)
+        prepare: KEIL.prepareLinker.apply(KEIL, arguments)
     }
 
     Rule {
@@ -238,14 +202,8 @@
         multiplex: true
         inputs: ["obj"]
         inputsFromDependencies: ["staticlibrary"]
-
-        Artifact {
-            fileTags: ["staticlibrary"]
-            filePath: FileInfo.joinPaths(
-                            product.destinationDirectory,
-                            PathTools.staticLibraryFilePath(product))
-        }
-
-        prepare: KEIL.prepareArchiver.apply(KEIL, arguments);
+        outputFileTags: ["staticlibrary"]
+        outputArtifacts: KEIL.staticLibraryLinkerOutputArtifacts(product)
+        prepare: KEIL.prepareArchiver.apply(KEIL, arguments)
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qbs-src-1.14.0/share/qbs/modules/cpp/sdcc.js 
new/qbs-src-1.14.1/share/qbs/modules/cpp/sdcc.js
--- old/qbs-src-1.14.0/share/qbs/modules/cpp/sdcc.js    2019-09-27 
16:41:37.000000000 +0200
+++ new/qbs-src-1.14.1/share/qbs/modules/cpp/sdcc.js    2019-10-16 
15:22:00.000000000 +0200
@@ -33,6 +33,7 @@
 var File = require("qbs.File");
 var FileInfo = require("qbs.FileInfo");
 var ModUtils = require("qbs.ModUtils");
+var PathTools = require("qbs.PathTools");
 var Process = require("qbs.Process");
 var TemporaryDir = require("qbs.TemporaryDir");
 var TextFile = require("qbs.TextFile");
@@ -178,15 +179,87 @@
     return result;
 }
 
-function compilerFlags(project, product, input, output, explicitlyDependsOn) {
+function compilerOutputArtifacts(input) {
+    var obj = {
+        fileTags: ["obj"],
+        filePath: Utilities.getHash(input.baseDir) + "/"
+              + input.fileName + input.cpp.objectSuffix
+    };
+    var asm_adb = {
+        fileTags: ["asm_adb"],
+        filePath: Utilities.getHash(input.baseDir) + "/"
+              + input.fileName + ".adb"
+    };
+    var asm_lst = {
+        fileTags: ["asm_lst"],
+        filePath: Utilities.getHash(input.baseDir) + "/"
+              + input.fileName + ".lst"
+    };
+    var asm_src = {
+        fileTags: ["asm_src"],
+        filePath: Utilities.getHash(input.baseDir) + "/"
+              + input.fileName + ".asm"
+    };
+    var asm_sym = {
+        fileTags: ["asm_sym"],
+        filePath: Utilities.getHash(input.baseDir) + "/"
+              + input.fileName + ".sym"
+    };
+    var rst_data = {
+        fileTags: ["rst_data"],
+        filePath: Utilities.getHash(input.baseDir) + "/"
+              + input.fileName + ".rst"
+    };
+    return [obj, asm_adb, asm_lst, asm_src, asm_sym, rst_data];
+}
+
+function applicationLinkerOutputArtifacts(product) {
+    var app = {
+        fileTags: ["application"],
+        filePath: FileInfo.joinPaths(
+                      product.destinationDirectory,
+                      PathTools.applicationFilePath(product))
+    };
+    var lk_cmd = {
+        fileTags: ["lk_cmd"],
+        filePath: FileInfo.joinPaths(
+                      product.destinationDirectory,
+                      product.targetName + ".lk")
+    };
+    var mem_summary = {
+        fileTags: ["mem_summary"],
+        filePath: FileInfo.joinPaths(
+                      product.destinationDirectory,
+                      product.targetName + ".mem")
+    };
+    var mem_map = {
+        fileTags: ["mem_map"],
+        filePath: FileInfo.joinPaths(
+                      product.destinationDirectory,
+                      product.targetName + ".map")
+    };
+    return [app, lk_cmd, mem_summary, mem_map]
+}
+
+function staticLibraryLinkerOutputArtifacts(product) {
+    var staticLib = {
+        fileTags: ["staticlibrary"],
+        filePath: FileInfo.joinPaths(
+                      product.destinationDirectory,
+                      PathTools.staticLibraryFilePath(product))
+    };
+    return [staticLib]
+}
+
+function compilerFlags(project, product, input, outputs, explicitlyDependsOn) {
     // Determine which C-language we"re compiling.
-    var tag = 
ModUtils.fileTagForTargetLanguage(input.fileTags.concat(output.fileTags));
+    var tag = 
ModUtils.fileTagForTargetLanguage(input.fileTags.concat(outputs.obj[0].fileTags));
 
     var args = [];
 
     args.push(input.filePath);
     args.push("-c");
-    args.push("-o", output.filePath);
+    args.push("-o", outputs.obj[0].filePath);
 
     switch (input.cpp.optimization) {
     case "small":
@@ -247,9 +320,9 @@
     return args;
 }
 
-function assemblerFlags(project, product, input, output, explicitlyDependsOn) {
+function assemblerFlags(project, product, input, outputs, explicitlyDependsOn) 
{
     // Determine which C-language we"re compiling
-    var tag = 
ModUtils.fileTagForTargetLanguage(input.fileTags.concat(output.fileTags));
+    var tag = 
ModUtils.fileTagForTargetLanguage(input.fileTags.concat(outputs.obj[0].fileTags));
 
     var args = [];
 
@@ -267,7 +340,7 @@
                        ModUtils.moduleProperty(input, "driverFlags", tag));
 
     args.push("-ol");
-    args.push(output.filePath);
+    args.push(outputs.obj[0].filePath);
     args.push(input.filePath);
     return args;
 }
@@ -332,7 +405,9 @@
     var escapedLinkerFlags = escapeLinkerFlags(product, escapableLinkerFlags);
     if (escapedLinkerFlags)
         Array.prototype.push.apply(args, escapedLinkerFlags);
-
+    var driverLinkerFlags = useCompilerDriver ? product.cpp.driverLinkerFlags 
: undefined;
+    if (driverLinkerFlags)
+        Array.prototype.push.apply(args, driverLinkerFlags);
     return args;
 }
 
@@ -345,7 +420,7 @@
 }
 
 function prepareCompiler(project, product, inputs, outputs, input, output, 
explicitlyDependsOn) {
-    var args = compilerFlags(project, product, input, output, 
explicitlyDependsOn);
+    var args = compilerFlags(project, product, input, outputs, 
explicitlyDependsOn);
     var compilerPath = input.cpp.compilerPath;
     var cmd = new Command(compilerPath, args)
     cmd.description = "compiling " + input.fileName;
@@ -354,7 +429,7 @@
 }
 
 function prepareAssembler(project, product, inputs, outputs, input, output, 
explicitlyDependsOn) {
-    var args = assemblerFlags(project, product, input, output, 
explicitlyDependsOn);
+    var args = assemblerFlags(project, product, input, outputs, 
explicitlyDependsOn);
     var assemblerPath = input.cpp.assemblerPath;
     var cmd = new Command(assemblerPath, args)
     cmd.description = "assembling " + input.fileName;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qbs-src-1.14.0/share/qbs/modules/cpp/sdcc.qbs 
new/qbs-src-1.14.1/share/qbs/modules/cpp/sdcc.qbs
--- old/qbs-src-1.14.0/share/qbs/modules/cpp/sdcc.qbs   2019-09-27 
16:41:37.000000000 +0200
+++ new/qbs-src-1.14.1/share/qbs/modules/cpp/sdcc.qbs   2019-10-16 
15:22:00.000000000 +0200
@@ -32,9 +32,7 @@
 import qbs.File
 import qbs.FileInfo
 import qbs.ModUtils
-import qbs.PathTools
 import qbs.Probes
-import qbs.Utilities
 import "sdcc.js" as SDCC
 
 CppModule {
@@ -117,13 +115,8 @@
     Rule {
         id: assembler
         inputs: ["asm"]
-
-        Artifact {
-            fileTags: ["obj"]
-            filePath: Utilities.getHash(input.baseDir) + "/"
-                      + input.fileName + input.cpp.objectSuffix
-        }
-
+        outputFileTags: ["obj", "asm_adb", "asm_lst", "asm_src", "asm_sym", 
"rst_data"]
+        outputArtifacts: SDCC.compilerOutputArtifacts(input)
         prepare: SDCC.prepareAssembler.apply(SDCC, arguments);
     }
 
@@ -143,14 +136,9 @@
         id: compiler
         inputs: ["cpp", "c"]
         auxiliaryInputs: ["hpp"]
-
-        Artifact {
-            fileTags: ["obj"]
-            filePath: Utilities.getHash(input.baseDir) + "/"
-                      + input.fileName + input.cpp.objectSuffix
-        }
-
-        prepare: SDCC.prepareCompiler.apply(SDCC, arguments);
+        outputFileTags: ["obj", "asm_adb", "asm_lst", "asm_src", "asm_sym", 
"rst_data"]
+        outputArtifacts: SDCC.compilerOutputArtifacts(input)
+        prepare: SDCC.prepareCompiler.apply(SDCC, arguments)
     }
 
     Rule {
@@ -158,33 +146,9 @@
         multiplex: true
         inputs: ["obj", "linkerscript"]
         inputsFromDependencies: ["staticlibrary"]
-
-        outputFileTags: {
-            var tags = ["application"];
-            if (product.moduleProperty("cpp", "generateMapFile"))
-                tags.push("map_file");
-            return tags;
-        }
-        outputArtifacts: {
-            var app = {
-                fileTags: ["application"],
-                filePath: FileInfo.joinPaths(
-                              product.destinationDirectory,
-                              PathTools.applicationFilePath(product))
-            };
-            var artifacts = [app];
-            if (product.cpp.generateMapFile) {
-                artifacts.push({
-                    fileTags: ["map_file"],
-                filePath: FileInfo.joinPaths(
-                              product.destinationDirectory,
-                              product.targetName + ".map")
-                });
-            }
-            return artifacts;
-        }
-
-        prepare:SDCC.prepareLinker.apply(SDCC, arguments);
+        outputFileTags: ["application", "lk_cmd", "mem_summary", "mem_map"]
+        outputArtifacts: SDCC.applicationLinkerOutputArtifacts(product)
+        prepare:SDCC.prepareLinker.apply(SDCC, arguments)
     }
 
     Rule {
@@ -192,14 +156,8 @@
         multiplex: true
         inputs: ["obj"]
         inputsFromDependencies: ["staticlibrary"]
-
-        Artifact {
-            fileTags: ["staticlibrary"]
-            filePath: FileInfo.joinPaths(
-                            product.destinationDirectory,
-                            PathTools.staticLibraryFilePath(product))
-        }
-
-        prepare: SDCC.prepareArchiver.apply(SDCC, arguments);
+        outputFileTags: ["staticlibrary"]
+        outputArtifacts: SDCC.staticLibraryLinkerOutputArtifacts(product)
+        prepare: SDCC.prepareArchiver.apply(SDCC, arguments)
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qbs-src-1.14.0/tests/auto/blackbox/tst_blackbox.cpp 
new/qbs-src-1.14.1/tests/auto/blackbox/tst_blackbox.cpp
--- old/qbs-src-1.14.0/tests/auto/blackbox/tst_blackbox.cpp     2019-09-27 
16:41:37.000000000 +0200
+++ new/qbs-src-1.14.1/tests/auto/blackbox/tst_blackbox.cpp     2019-10-16 
15:22:00.000000000 +0200
@@ -4262,7 +4262,8 @@
         rmDirR(relativeBuildDir());
         params.arguments = QStringList() << commonArgs << "project.lazy:true";
         QCOMPARE(runQbs(params), 0);
-        QVERIFY2(m_qbsStdout.contains("meow\nLib was loaded!\n"), 
m_qbsStdout.constData());
+        QVERIFY2(m_qbsStdout.contains("meow\n") && m_qbsStdout.contains("Lib 
was loaded!\n"),
+                 m_qbsStdout.constData());
     }
 }
 


Reply via email to