aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/cpp
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2019-09-24 12:02:51 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2019-10-01 14:14:07 +0000
commiteed1db08c739fd22eb00e55206eb7b28310d79d0 (patch)
treeceb9ce42ca0b5aac933fa85f441cb15d11febd9f /share/qbs/modules/cpp
parent37ef97bfa812a9a6f90b0513d31bd83bf7ce2a87 (diff)
Refactor the map file generation property
1. It is makes sense to define this property once inside of CppModule, instead of duplicate it in each other module. 2. A new property name 'generateLinkerMapFile' will be better than a previous, so, we can rename this property. 3. The map file generation is not necessary to be always enabled, so, we can disable this property by default. Change-Id: I0439e8b3e0273593c8456d32b1c099ff09498fad Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share/qbs/modules/cpp')
-rw-r--r--share/qbs/modules/cpp/CppModule.qbs6
-rw-r--r--share/qbs/modules/cpp/iar.js4
-rw-r--r--share/qbs/modules/cpp/iar.qbs10
-rw-r--r--share/qbs/modules/cpp/keil.js4
-rw-r--r--share/qbs/modules/cpp/keil.qbs10
-rw-r--r--share/qbs/modules/cpp/sdcc.js2
-rw-r--r--share/qbs/modules/cpp/sdcc.qbs10
7 files changed, 17 insertions, 29 deletions
diff --git a/share/qbs/modules/cpp/CppModule.qbs b/share/qbs/modules/cpp/CppModule.qbs
index 200d91d09..50ce59b95 100644
--- a/share/qbs/modules/cpp/CppModule.qbs
+++ b/share/qbs/modules/cpp/CppModule.qbs
@@ -251,6 +251,12 @@ Module {
description: "additional compiler driver flags used for linking only"
}
+ property bool generateLinkerMapFile: false
+ PropertyOptions {
+ name: "generateLinkerMapFile"
+ description: "generate linker map file"
+ }
+
property bool positionIndependentCode: true
PropertyOptions {
name: "positionIndependentCode"
diff --git a/share/qbs/modules/cpp/iar.js b/share/qbs/modules/cpp/iar.js
index 436bdb8ee..b787901b2 100644
--- a/share/qbs/modules/cpp/iar.js
+++ b/share/qbs/modules/cpp/iar.js
@@ -551,7 +551,7 @@ function linkerFlags(project, product, input, outputs) {
// Silent output generation flag.
args.push("--silent");
// Map file generation flag.
- if (product.cpp.generateMapFile)
+ if (product.cpp.generateLinkerMapFile)
args.push("--map", outputs.map_file[0].filePath);
// Entry point flag.
if (product.cpp.entryPoint)
@@ -568,7 +568,7 @@ function linkerFlags(project, product, input, outputs) {
if (product.cpp.debugInformation)
args.push("-rt");
// Map file generation flag.
- if (product.cpp.generateMapFile)
+ if (product.cpp.generateLinkerMapFile)
args.push("-l", outputs.map_file[0].filePath);
// Entry point flag.
if (product.cpp.entryPoint)
diff --git a/share/qbs/modules/cpp/iar.qbs b/share/qbs/modules/cpp/iar.qbs
index 8140a8e73..fef84fe1b 100644
--- a/share/qbs/modules/cpp/iar.qbs
+++ b/share/qbs/modules/cpp/iar.qbs
@@ -68,12 +68,6 @@ CppModule {
property string compilerExtension: qbs.hostOS.contains("windows") ? ".exe" : ""
- property bool generateMapFile: true
- PropertyOptions {
- name: "generateMapFile"
- description: "produce a linker list file (enabled by default)"
- }
-
/* Work-around for QtCreator which expects these properties to exist. */
property string cCompilerName: compilerName
property string cxxCompilerName: compilerName
@@ -142,7 +136,7 @@ CppModule {
outputFileTags: {
var tags = ["application"];
- if (product.moduleProperty("cpp", "generateMapFile"))
+ if (product.moduleProperty("cpp", "generateLinkerMapFile"))
tags.push("map_file");
return tags;
}
@@ -154,7 +148,7 @@ CppModule {
PathTools.applicationFilePath(product))
};
var artifacts = [app];
- if (product.cpp.generateMapFile) {
+ if (product.cpp.generateLinkerMapFile) {
artifacts.push({
fileTags: ["map_file"],
filePath: FileInfo.joinPaths(
diff --git a/share/qbs/modules/cpp/keil.js b/share/qbs/modules/cpp/keil.js
index 4b3665715..fc485373b 100644
--- a/share/qbs/modules/cpp/keil.js
+++ b/share/qbs/modules/cpp/keil.js
@@ -604,7 +604,7 @@ function linkerFlags(project, product, input, outputs) {
args.push("TO", '"' + FileInfo.toWindowsSeparators(outputs.application[0].filePath) + '"');
// Map file generation flag.
- if (!product.cpp.generateMapFile)
+ if (!product.cpp.generateLinkerMapFile)
args.push("NOMAP");
} else if (architecture === "arm") {
// Inputs.
@@ -629,7 +629,7 @@ function linkerFlags(project, product, input, outputs) {
args.push(debugInformation ? "--debug" : "--no_debug");
// Map file generation flag.
- if (product.cpp.generateMapFile)
+ if (product.cpp.generateLinkerMapFile)
args.push("--list", outputs.map_file[0].filePath);
// Entry point flag.
diff --git a/share/qbs/modules/cpp/keil.qbs b/share/qbs/modules/cpp/keil.qbs
index 2d29112cd..75eb323e3 100644
--- a/share/qbs/modules/cpp/keil.qbs
+++ b/share/qbs/modules/cpp/keil.qbs
@@ -68,12 +68,6 @@ CppModule {
property string compilerExtension: qbs.hostOS.contains("windows") ? ".exe" : ""
- property bool generateMapFile: true
- PropertyOptions {
- name: "generateMapFile"
- description: "produce a linker list file (enabled by default)"
- }
-
/* Work-around for QtCreator which expects these properties to exist. */
property string cCompilerName: compilerName
property string cxxCompilerName: compilerName
@@ -141,7 +135,7 @@ CppModule {
outputFileTags: {
var tags = ["application"];
- if (product.moduleProperty("cpp", "generateMapFile"))
+ if (product.moduleProperty("cpp", "generateLinkerMapFile"))
tags.push("map_file");
return tags;
}
@@ -153,7 +147,7 @@ CppModule {
PathTools.applicationFilePath(product))
};
var artifacts = [app];
- if (product.cpp.generateMapFile) {
+ if (product.cpp.generateLinkerMapFile) {
artifacts.push({
fileTags: ["map_file"],
filePath: FileInfo.joinPaths(
diff --git a/share/qbs/modules/cpp/sdcc.js b/share/qbs/modules/cpp/sdcc.js
index 70efa83e8..cc76d4ebd 100644
--- a/share/qbs/modules/cpp/sdcc.js
+++ b/share/qbs/modules/cpp/sdcc.js
@@ -355,7 +355,7 @@ function linkerFlags(project, product, input, outputs) {
var escapableLinkerFlags = [];
// Map file generation flag.
- if (product.cpp.generateMapFile)
+ if (product.cpp.generateLinkerMapFile)
escapableLinkerFlags.push("-m");
if (product.cpp.platformLinkerFlags)
diff --git a/share/qbs/modules/cpp/sdcc.qbs b/share/qbs/modules/cpp/sdcc.qbs
index 119a0ba92..6bcbc2580 100644
--- a/share/qbs/modules/cpp/sdcc.qbs
+++ b/share/qbs/modules/cpp/sdcc.qbs
@@ -68,12 +68,6 @@ CppModule {
property string compilerExtension: qbs.hostOS.contains("windows") ? ".exe" : ""
- property bool generateMapFile: true
- PropertyOptions {
- name: "generateMapFile"
- description: "produce a linker list file (enabled by default)"
- }
-
/* Work-around for QtCreator which expects these properties to exist. */
property string cCompilerName: compilerName
property string cxxCompilerName: compilerName
@@ -151,7 +145,7 @@ CppModule {
outputFileTags: {
var tags = ["application"];
- if (product.moduleProperty("cpp", "generateMapFile"))
+ if (product.moduleProperty("cpp", "generateLinkerMapFile"))
tags.push("map_file");
return tags;
}
@@ -163,7 +157,7 @@ CppModule {
PathTools.applicationFilePath(product))
};
var artifacts = [app];
- if (product.cpp.generateMapFile) {
+ if (product.cpp.generateLinkerMapFile) {
artifacts.push({
fileTags: ["map_file"],
filePath: FileInfo.joinPaths(