aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2014-03-14 15:24:09 +0100
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-03-14 16:31:51 +0100
commitae6392f90d7a1de97262d934e0150cc53ea32451 (patch)
tree1bef1e06dd379c2dd425421286fdc22c9e75b227 /share
parentfe1048e5b31504d525482c6fcf0298afdea6bda9 (diff)
fix library dependency order
Autotest from the bug report added. Task-number: QBS-524 Change-Id: I2ef3485db749424339a2ea96900e49fa5d1363d4 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'share')
-rw-r--r--share/qbs/modules/cpp/GenericGCC.qbs6
-rw-r--r--share/qbs/modules/cpp/gcc.js17
2 files changed, 14 insertions, 9 deletions
diff --git a/share/qbs/modules/cpp/GenericGCC.qbs b/share/qbs/modules/cpp/GenericGCC.qbs
index ee5904454..342a6b70c 100644
--- a/share/qbs/modules/cpp/GenericGCC.qbs
+++ b/share/qbs/modules/cpp/GenericGCC.qbs
@@ -231,9 +231,9 @@ CppModule {
var result = []
for (var i in inputs.staticlibrary) {
var lib = inputs.staticlibrary[i]
- result.push(lib.filePath)
- var impliedLibs = ModUtils.moduleProperties(lib, 'staticLibraries')
- result = Gcc.concatLibs(result, impliedLibs);
+ result = Gcc.concatLibs(result, [lib.filePath,
+ ModUtils.moduleProperties(lib,
+ 'staticLibraries')]);
}
return result
}
diff --git a/share/qbs/modules/cpp/gcc.js b/share/qbs/modules/cpp/gcc.js
index ace391b38..6fd5c49de 100644
--- a/share/qbs/modules/cpp/gcc.js
+++ b/share/qbs/modules/cpp/gcc.js
@@ -355,14 +355,19 @@ function concatLibs(libs, deplibs)
{
var r = [];
var s = {};
- function f(e)
+
+ function addLibs(lst)
{
- if (!s[e]) {
- s[e] = true;
- r.unshift(e);
+ for (var i = lst.length; --i >= 0;) {
+ var lib = lst[i];
+ if (!s[lib]) {
+ s[lib] = true;
+ r.unshift(lib);
+ }
}
}
- deplibs.forEach(f);
- libs.forEach(f);
+
+ addLibs(deplibs);
+ addLibs(libs);
return r;
}