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()