aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2018-04-16 07:58:59 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2018-04-18 05:09:45 +0000
commit5378c7d4dd7ef920841b01bca3cb75585e7ee5f2 (patch)
treea86215e1c78051f1f9a223a49abe0cc9134d94f1 /share
parent712ab15916cbce2ce4605dd8bf1ee658c63fef76 (diff)
Expose cl-generated PDBs as debuginfo_cl artifacts for static libs
[ChangeLog] For MSVC static libraries, compiler-generated PDB files are now tagged as debuginfo_cl to make them installable. Change-Id: I8431dbffbbc31c48f1bc7aea96332e0b2408c743 Task-number: QBS-1106 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share')
-rw-r--r--share/qbs/modules/cpp/msvc.js3
-rw-r--r--share/qbs/modules/cpp/windows-msvc.qbs28
2 files changed, 23 insertions, 8 deletions
diff --git a/share/qbs/modules/cpp/msvc.js b/share/qbs/modules/cpp/msvc.js
index b2022d9ad..4be20bfd1 100644
--- a/share/qbs/modules/cpp/msvc.js
+++ b/share/qbs/modules/cpp/msvc.js
@@ -183,6 +183,9 @@ function prepareCompiler(project, product, inputs, outputs, input, output, expli
}
}
+ if (product.cpp.debugInformation && product.cpp.separateDebugInformation)
+ args.push("/Fd" + product.targetName + ".cl" + product.cpp.debugInfoSuffix);
+
var objOutput = outputs.obj ? outputs.obj[0] : undefined
args.push('/Fo' + FileInfo.toWindowsSeparators(objOutput.filePath))
args.push(FileInfo.toWindowsSeparators(input.filePath))
diff --git a/share/qbs/modules/cpp/windows-msvc.qbs b/share/qbs/modules/cpp/windows-msvc.qbs
index 653f58212..3164e08b5 100644
--- a/share/qbs/modules/cpp/windows-msvc.qbs
+++ b/share/qbs/modules/cpp/windows-msvc.qbs
@@ -260,24 +260,36 @@ CppModule {
multiplex: true
inputs: ["obj"]
inputsFromDependencies: ["staticlibrary", "dynamiclibrary_import"]
-
- Artifact {
- fileTags: ["staticlibrary"]
- filePath: product.destinationDirectory + "/" + PathTools.staticLibraryFilePath(product)
+ outputFileTags: ["staticlibrary", "debuginfo_cl"]
+ outputArtifacts: {
+ var artifacts = [
+ {
+ fileTags: ["staticlibrary"],
+ filePath: FileInfo.joinPaths(product.destinationDirectory,
+ PathTools.staticLibraryFilePath(product))
+ }
+ ];
+ if (product.cpp.debugInformation && product.cpp.separateDebugInformation) {
+ artifacts.push({
+ fileTags: ["debuginfo_cl"],
+ filePath: product.targetName + ".cl" + product.cpp.debugInfoSuffix
+ });
+ }
+ return artifacts;
}
-
prepare: {
var args = ['/nologo']
- var nativeOutputFileName = FileInfo.toWindowsSeparators(output.filePath)
+ var lib = outputs["staticlibrary"][0];
+ var nativeOutputFileName = FileInfo.toWindowsSeparators(lib.filePath)
args.push('/OUT:' + nativeOutputFileName)
for (var i in inputs.obj) {
var fileName = FileInfo.toWindowsSeparators(inputs.obj[i].filePath)
args.push(fileName)
}
var cmd = new Command("lib.exe", args);
- cmd.description = 'creating ' + output.fileName;
+ cmd.description = 'creating ' + lib.fileName;
cmd.highlight = 'linker';
- cmd.workingDirectory = FileInfo.path(output.filePath)
+ cmd.workingDirectory = FileInfo.path(lib.filePath)
cmd.responseFileUsagePrefix = '@';
return cmd;
}