diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2018-04-16 07:58:59 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2018-04-18 05:09:45 +0000 |
commit | 5378c7d4dd7ef920841b01bca3cb75585e7ee5f2 (patch) | |
tree | a86215e1c78051f1f9a223a49abe0cc9134d94f1 /share | |
parent | 712ab15916cbce2ce4605dd8bf1ee658c63fef76 (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.js | 3 | ||||
-rw-r--r-- | share/qbs/modules/cpp/windows-msvc.qbs | 28 |
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; } |