aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@theqtcompany.com>2014-12-19 16:03:23 +0100
committerJoerg Bornemann <joerg.bornemann@theqtcompany.com>2014-12-19 16:23:16 +0100
commitddd557d9230c795144f11285577a651b6fb15235 (patch)
tree8d5239f46c821bce4d54723c448aafb4829af383
parent86e872bd99184fe862bfe30ef43acd9806e34bc5 (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.js33
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"));