From ae6392f90d7a1de97262d934e0150cc53ea32451 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 14 Mar 2014 15:24:09 +0100 Subject: fix library dependency order Autotest from the bug report added. Task-number: QBS-524 Change-Id: I2ef3485db749424339a2ea96900e49fa5d1363d4 Reviewed-by: Christian Kandeler --- share/qbs/modules/cpp/GenericGCC.qbs | 6 +++--- share/qbs/modules/cpp/gcc.js | 17 +++++++++++------ 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'share') 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; } -- cgit v1.2.3