aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-01-12 11:31:25 -0800
committerDylan Baker <dylan@pnwbakers.com>2021-01-13 13:32:48 -0800
commite36aca42d0980ce4b43e5753d798c986135e9f43 (patch)
treebe24e9dca9f08196ac83dfffa5d6b6aef9d6e026 /mesonbuild/build.py
parent59328aba2929b969a7e7ce1390d891dafe391a7f (diff)
downloadmeson-e36aca42d0980ce4b43e5753d798c986135e9f43.zip
meson-e36aca42d0980ce4b43e5753d798c986135e9f43.tar.gz
meson-e36aca42d0980ce4b43e5753d798c986135e9f43.tar.bz2
build/interpreter: Split InstallDir to fix layering violation
Currently InstallDir is part of the interpreter, and is an Interpreter object, which is then put in the Build object. This is a layering violation, the interperter should have a Holder for build data. This patch fixes that.
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 23d2ff7..017b0f0 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -171,6 +171,21 @@ class Man:
return self.sources
+class InstallDir:
+
+ def __init__(self, src_subdir: str, inst_subdir: str, install_dir: str,
+ install_mode: T.Optional['FileMode'],
+ exclude: T.Tuple[T.Set[str], T.Set[str]],
+ strip_directory: bool, from_source_dir: bool = True):
+ self.source_subdir = src_subdir
+ self.installable_subdir = inst_subdir
+ self.install_dir = install_dir
+ self.install_mode = install_mode
+ self.exclude = exclude
+ self.strip_directory = strip_directory
+ self.from_source_dir = from_source_dir
+
+
class Build:
"""A class that holds the status of one build including
all dependencies and so on.
@@ -198,7 +213,7 @@ class Build:
self.install_scripts = []
self.postconf_scripts = []
self.dist_scripts = []
- self.install_dirs = []
+ self.install_dirs: T.List[InstallDir] = []
self.dep_manifest_name = None
self.dep_manifest = {}
self.stdlibs = PerMachine({}, {})