aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/qbs/modules/cpp/GenericGCC.qbs9
-rw-r--r--share/qbs/modules/cpp/gcc.js7
-rw-r--r--share/qbs/modules/cpp/msvc.js3
-rw-r--r--share/qbs/modules/cpp/windows-msvc-base.qbs10
4 files changed, 27 insertions, 2 deletions
diff --git a/share/qbs/modules/cpp/GenericGCC.qbs b/share/qbs/modules/cpp/GenericGCC.qbs
index 5ededc512..63d5db7b8 100644
--- a/share/qbs/modules/cpp/GenericGCC.qbs
+++ b/share/qbs/modules/cpp/GenericGCC.qbs
@@ -561,7 +561,7 @@ CppModule {
inputsFromDependencies: ["dynamiclibrary_symbols", "dynamiclibrary_import", "staticlibrary"]
outputFileTags: ["bundle.input", "application", "debuginfo_app","debuginfo_bundle",
- "debuginfo_plist"]
+ "debuginfo_plist", "mem_map"]
outputArtifacts: {
var app = {
filePath: FileInfo.joinPaths(product.destinationDirectory,
@@ -575,6 +575,13 @@ CppModule {
var artifacts = [app];
if (!product.aggregate)
artifacts = artifacts.concat(Gcc.debugInfoArtifacts(product, undefined, "app"));
+ if (product.cpp.generateLinkerMapFile) {
+ artifacts.push({
+ filePath: FileInfo.joinPaths(product.destinationDirectory,
+ product.targetName + ".map"),
+ fileTags: ["mem_map"]
+ });
+ }
return artifacts;
}
diff --git a/share/qbs/modules/cpp/gcc.js b/share/qbs/modules/cpp/gcc.js
index 0913b27d0..639191da6 100644
--- a/share/qbs/modules/cpp/gcc.js
+++ b/share/qbs/modules/cpp/gcc.js
@@ -514,6 +514,13 @@ function linkerFlags(project, product, inputs, outputs, primaryOutput, linkerPat
if (importLibs)
escapableLinkerFlags.push("--out-implib", importLibs[0].filePath);
+ if (outputs.application && product.cpp.generateLinkerMapFile) {
+ if (isDarwin)
+ escapableLinkerFlags.push("-map", outputs.mem_map[0].filePath);
+ else
+ escapableLinkerFlags.push("-Map=" + outputs.mem_map[0].filePath);
+ }
+
var escapedLinkerFlags = escapeLinkerFlags(product, inputs, escapableLinkerFlags);
Array.prototype.push.apply(escapedLinkerFlags, args);
var driverLinkerFlags = useCompilerDriver ? product.cpp.driverLinkerFlags : undefined;
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;
}