aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r--mesonbuild/backend/backends.py6
-rw-r--r--mesonbuild/backend/ninjabackend.py7
2 files changed, 13 insertions, 0 deletions
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)