diff options
author | Joerg Bornemann <joerg.bornemann@theqtcompany.com> | 2014-12-19 16:03:23 +0100 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@theqtcompany.com> | 2014-12-19 16:23:16 +0100 |
commit | ddd557d9230c795144f11285577a651b6fb15235 (patch) | |
tree | 8d5239f46c821bce4d54723c448aafb4829af383 | |
parent | 86e872bd99184fe862bfe30ef43acd9806e34bc5 (diff) |
fix duplicate libraries in MSVC linker command
Change-Id: I3e52c1813e978cc62021b9d35f3af6dd8b90d656
Task-number: QBS-710
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
-rw-r--r-- | share/qbs/modules/cpp/msvc.js | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/share/qbs/modules/cpp/msvc.js b/share/qbs/modules/cpp/msvc.js index 7773065d1..32d13bc52 100644 --- a/share/qbs/modules/cpp/msvc.js +++ b/share/qbs/modules/cpp/msvc.js @@ -192,22 +192,27 @@ function prepareLinker(product, inputs, outputs) { args.push(fileName) } - var staticLibraries = ModUtils.modulePropertiesFromArtifacts(product, inputs.staticlibrary, - "cpp", "staticLibraries"); - for (i in staticLibraries) { - var staticLibrary = staticLibraries[i]; - if (!staticLibrary.match(/\.lib$/i)) - staticLibrary += ".lib"; - args.push(staticLibrary) - } - var dynamicLibraries = ModUtils.moduleProperties(product, "dynamicLibraries"); - for (i in dynamicLibraries) { - var dynamicLibrary = dynamicLibraries[i]; - if (!dynamicLibrary.match(/\.lib$/i)) - dynamicLibrary += ".lib"; - args.push(dynamicLibrary) + function pushLibs(libs) + { + if (!libs) + return; + var s = {}; + var c = libs.length; + for (var i = 0; i < c; ++i) { + var lib = libs[i]; + if (!lib.match(/\.lib$/i)) + lib += ".lib"; + if (s[lib]) + continue; + s[lib] = true; + args.push(lib); + } } + pushLibs(ModUtils.modulePropertiesFromArtifacts(product, inputs.staticlibrary, + "cpp", "staticLibraries")); + pushLibs(ModUtils.moduleProperties(product, "dynamicLibraries")); + if (product.moduleProperty("cpp", "entryPoint")) args.push("/ENTRY:" + product.moduleProperty("cpp", "entryPoint")); |