aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2020-04-01 21:31:42 -0400
committerXavier Claessens <xclaesse@gmail.com>2020-09-13 13:54:47 -0400
commit19696c3dcdb379f4c5b88457f43242f2d33427a0 (patch)
tree25720654b02903d45c02f976f0505d31ae197e9f
parent7fbdf38ce3b02cc775ce22c3c303ad3529a758c2 (diff)
downloadmeson-19696c3dcdb379f4c5b88457f43242f2d33427a0.zip
meson-19696c3dcdb379f4c5b88457f43242f2d33427a0.tar.gz
meson-19696c3dcdb379f4c5b88457f43242f2d33427a0.tar.bz2
Allow installing dir from build dir
-rw-r--r--mesonbuild/backend/backends.py6
-rw-r--r--mesonbuild/interpreter.py4
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):