From 19696c3dcdb379f4c5b88457f43242f2d33427a0 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Wed, 1 Apr 2020 21:31:42 -0400 Subject: [PATCH] Allow installing dir from build dir --- mesonbuild/backend/backends.py | 6 +++++- mesonbuild/interpreter.py | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index df6dc8f7f..9bb1a9a14 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -1335,7 +1335,11 @@ class Backend: def generate_subdir_install(self, d): for sd in self.build.get_install_subdirs(): - src_dir = os.path.join(self.environment.get_source_dir(), + if sd.from_source_dir: + from_dir = self.environment.get_source_dir() + else: + from_dir = self.environment.get_build_dir() + src_dir = os.path.join(from_dir, sd.source_subdir, sd.installable_subdir).rstrip('/') dst_dir = os.path.join(self.environment.get_prefix(), diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index fc09fa0ba..99a29164c 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -741,7 +741,8 @@ class DataHolder(InterpreterObject, ObjectHolder): return self.held_object.install_dir class InstallDir(InterpreterObject): - def __init__(self, src_subdir, inst_subdir, install_dir, install_mode, exclude, strip_directory): + def __init__(self, src_subdir, inst_subdir, install_dir, install_mode, + exclude, strip_directory, from_source_dir=True): InterpreterObject.__init__(self) self.source_subdir = src_subdir self.installable_subdir = inst_subdir @@ -749,6 +750,7 @@ class InstallDir(InterpreterObject): self.install_mode = install_mode self.exclude = exclude self.strip_directory = strip_directory + self.from_source_dir = from_source_dir class Man(InterpreterObject):