From 02af2595540e7666b6aad1991599763230af339d Mon Sep 17 00:00:00 2001 From: Denis Shienkov Date: Wed, 16 Oct 2019 15:08:49 +0300 Subject: Allow to generate map file using MSVC toolchain Right now it is possible to generate a linker map file using the cpp.generateLinkerMapFile property. Change-Id: Iffed6867e9829f5f2ca51b1932d6641963e66abe Reviewed-by: Christian Kandeler --- share/qbs/modules/cpp/msvc.js | 3 +++ share/qbs/modules/cpp/windows-msvc-base.qbs | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/share/qbs/modules/cpp/msvc.js b/share/qbs/modules/cpp/msvc.js index 02facf30a..b67ab811f 100644 --- a/share/qbs/modules/cpp/msvc.js +++ b/share/qbs/modules/cpp/msvc.js @@ -470,6 +470,9 @@ function prepareLinker(project, product, inputs, outputs, input, output) { if (product.cpp.entryPoint) args.push("/ENTRY:" + product.cpp.entryPoint); + if (outputs.application && product.cpp.generateLinkerMapFile) + args.push("/MAP:" + outputs.mem_map[0].filePath); + args.push('/OUT:' + linkerOutputNativeFilePath) var libraryPaths = product.cpp.libraryPaths; if (libraryPaths) diff --git a/share/qbs/modules/cpp/windows-msvc-base.qbs b/share/qbs/modules/cpp/windows-msvc-base.qbs index ae105abe2..aa1c8256c 100644 --- a/share/qbs/modules/cpp/windows-msvc-base.qbs +++ b/share/qbs/modules/cpp/windows-msvc-base.qbs @@ -176,7 +176,7 @@ CppModule { inputs: ['obj', 'native.pe.manifest'] inputsFromDependencies: ['staticlibrary', 'dynamiclibrary_import', "debuginfo_app"] - outputFileTags: ["application", "debuginfo_app"] + outputFileTags: ["application", "debuginfo_app", "mem_map"] outputArtifacts: { var app = { fileTags: ["application"], @@ -192,6 +192,14 @@ CppModule { + product.cpp.debugInfoSuffix }); } + if (product.cpp.generateLinkerMapFile) { + artifacts.push({ + fileTags: ["mem_map"], + filePath: FileInfo.joinPaths( + product.destinationDirectory, + product.targetName + ".map") + }); + } return artifacts; } -- cgit v1.2.3