aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@theqtcompany.com>2014-12-18 16:23:08 +0100
committerJoerg Bornemann <joerg.bornemann@theqtcompany.com>2014-12-18 17:34:54 +0100
commit86e872bd99184fe862bfe30ef43acd9806e34bc5 (patch)
treee2a447b397ca849f8b97116b8f6a1f2f92267a92
parent76b6ddd82cec179f726072384cb8d0f92d573570 (diff)
fix duplicate libraries on gcc command line
Task-number: QBS-710 Change-Id: I935f8d4033d5be37bbf13c79b0225a57539d196b Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
-rw-r--r--share/qbs/modules/cpp/gcc.js18
1 files changed, 12 insertions, 6 deletions
diff --git a/share/qbs/modules/cpp/gcc.js b/share/qbs/modules/cpp/gcc.js
index 8dccd0f6b..1bc7100f0 100644
--- a/share/qbs/modules/cpp/gcc.js
+++ b/share/qbs/modules/cpp/gcc.js
@@ -18,12 +18,9 @@ function linkerFlags(product, inputs) {
args.push('-Wl,-rpath,' + rpaths.join(",-rpath,"));
// Add filenames of internal library dependencies to the lists
- for (i in inputs.staticlibrary)
- staticLibraries.unshift(inputs.staticlibrary[i].filePath);
- for (i in inputs.dynamiclibrary_copy)
- dynamicLibraries.unshift(inputs.dynamiclibrary_copy[i].filePath);
- for (i in inputs.frameworkbundle)
- frameworks.unshift(inputs.frameworkbundle[i].filePath);
+ staticLibraries = concatLibsFromArtifacts(staticLibraries, inputs.staticlibrary);
+ dynamicLibraries = concatLibsFromArtifacts(dynamicLibraries, inputs.dynamiclibrary_copy);
+ frameworks = concatLibsFromArtifacts(frameworks, inputs.frameworkbundle);
// Flags for library search paths
if (libraryPaths)
@@ -358,3 +355,12 @@ function concatLibs(libs, deplibs) {
addLibs(libs);
return r;
}
+
+function concatLibsFromArtifacts(libs, artifacts)
+{
+ if (!artifacts)
+ return libs;
+ var deps = artifacts.map(function (a) { return a.filePath; });
+ deps.reverse();
+ return concatLibs(deps, libs);
+}