From 23aabe5bd7d7c4c02ae4e7012dd8fa91ebd9e094 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Thu, 7 Nov 2019 06:46:31 +0300 Subject: [PATCH] msvc_pdb: check task class to not append output to wrong class task, like winres --- waflib/extras/msvc_pdb.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/waflib/extras/msvc_pdb.py b/waflib/extras/msvc_pdb.py index 881a2d53..8ee541c4 100644 --- a/waflib/extras/msvc_pdb.py +++ b/waflib/extras/msvc_pdb.py @@ -2,7 +2,8 @@ # encoding: utf-8 # Rafaƫl Kooi 2019 -from waflib import TaskGen, Tools +from waflib import TaskGen, Tools, Task + @TaskGen.feature('c', 'cxx', 'fc') @TaskGen.after_method('propagate_uselib_vars') def add_pdb_per_object(self): @@ -16,6 +17,12 @@ def add_pdb_per_object(self): link_task = getattr(self, 'link_task', None) for task in self.compiled_tasks: + # Check for task class, otherwise we may add flags or PDB node + # to wrong file, like .rc's + tup = tuple(y for y in [Task.classes.get(x) for x in ('c', 'cxx', 'fc')] if y) + if not isinstance(task, tup): + continue + node = task.outputs[0].change_ext('.pdb') pdb_flag = '/Fd:' + node.abspath()