diff options
author | Joerg Bornemann <joerg.bornemann@theqtcompany.com> | 2014-12-18 16:23:08 +0100 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@theqtcompany.com> | 2014-12-18 17:34:54 +0100 |
commit | 86e872bd99184fe862bfe30ef43acd9806e34bc5 (patch) | |
tree | e2a447b397ca849f8b97116b8f6a1f2f92267a92 | |
parent | 76b6ddd82cec179f726072384cb8d0f92d573570 (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.js | 18 |
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); +} |