diff options
-rw-r--r-- | mesonbuild/backend/backends.py | 6 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index df6dc8f..9bb1a9a 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 fc09fa0..99a2916 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): |