diff options
Diffstat (limited to 'share/qbs/modules/cpp/msvc.js')
-rw-r--r-- | share/qbs/modules/cpp/msvc.js | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/share/qbs/modules/cpp/msvc.js b/share/qbs/modules/cpp/msvc.js index c06286cbe..8611ebe50 100644 --- a/share/qbs/modules/cpp/msvc.js +++ b/share/qbs/modules/cpp/msvc.js @@ -391,6 +391,10 @@ function prepareLinker(project, product, inputs, outputs, input, output) { function (a) { return a.filePath; }); + var moduleDefinitionInputs = Array.prototype.map.call(inputs["def"], + function (a) { + return a.filePath; + }); var generateManifestFiles = !linkDLL && product.cpp.generateManifestFile; var useClangCl = product.qbs.toolchain.contains("clang-cl"); var canEmbedManifest = useClangCl || product.cpp.compilerVersionMajor >= 17 // VS 2012 @@ -502,6 +506,11 @@ function prepareLinker(project, product, inputs, outputs, input, output) { } } + if (moduleDefinitionInputs.length === 1) + linkerArgs.push("/DEF:" + moduleDefinitionInputs[0]); + else if (moduleDefinitionInputs.length > 1) + throw new Error("Only one '.def' file can be specified for linking"); + var wholeArchiveSupported = linkerSupportsWholeArchive(product); var wholeArchiveRequested = false; var libDeps = collectLibraryDependencies(product); |