From 0840a908f235ac3a4df271e2cd262cad0cfc5cbd Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Mon, 9 May 2016 17:11:45 +0530 Subject: ninjabackend: Add support for installing .pdb files .pdb files are files created by MSVC which have debug symbols. These are created when /ZI or /Zi is passed to the compiler and /DEBUG to the linker. --- mesonbuild/backend/backends.py | 6 ++++++ mesonbuild/backend/ninjabackend.py | 7 +++++++ 2 files changed, 13 insertions(+) (limited to 'mesonbuild/backend') diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 1f1c3ca..81283dc 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -118,6 +118,12 @@ class Backend(): return os.path.join(self.get_target_dir(target), target.get_filename()) raise AssertionError('BUG: Tried to link to something that\'s not a library') + def get_target_debug_filename(self, target): + fname = target.get_debug_filename() + if not fname: + raise AssertionError("BUG: Tried to generate debug filename when it doesn't exist") + return os.path.join(self.get_target_dir(target), fname) + def get_target_dir(self, target): if self.environment.coredata.get_builtin_option('layout') == 'mirror': dirname = target.get_subdir() diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 28667b7..e00fe2f 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -523,6 +523,13 @@ int dummy; else: # XXX: Add BuildTarget-specific install dir cases here outdir = self.environment.get_libdir() + if isinstance(t, build.SharedLibrary) or isinstance(t, build.Executable): + if t.get_debug_filename(): + # Install the debug symbols file in the same place as + # the target itself. It has no aliases, should not be + # stripped, and doesn't have an install_rpath + i = [self.get_target_debug_filename(t), outdir, [], False, ''] + d.targets.append(i) i = [self.get_target_filename(t), outdir, t.get_aliaslist(),\ should_strip, t.install_rpath] d.targets.append(i) -- cgit v1.1