diff options
author | Pablo Correa Gómez <ablocorrea@hotmail.com> | 2021-11-22 15:46:15 +0100 |
---|---|---|
committer | Eli Schwartz <eschwartz93@gmail.com> | 2021-12-01 13:59:54 -0500 |
commit | 4f882ff8ec81cbc42b097d3aee8ca4a8013f538b (patch) | |
tree | 9cef0e48e71fda1e116023ca8f0791cdfea59b2c /mesonbuild/build.py | |
parent | bb5a09de45a99b657b16edef7a9be423735aec79 (diff) | |
download | meson-4f882ff8ec81cbc42b097d3aee8ca4a8013f538b.zip meson-4f882ff8ec81cbc42b097d3aee8ca4a8013f538b.tar.gz meson-4f882ff8ec81cbc42b097d3aee8ca4a8013f538b.tar.bz2 |
add install_symlink function
Allows installing symlinks directly from meson, which can
become useful in multiple scenarios. Current main use is to
help moving forward #9557
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r-- | mesonbuild/build.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 545575c..89c158e 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -251,6 +251,7 @@ class Build: self.man: T.List[Man] = [] self.emptydir: T.List[EmptyDir] = [] self.data: T.List[Data] = [] + self.symlinks: T.List[SymlinkData] = [] self.static_linker: PerMachine[StaticLinker] = PerMachine(None, None) self.subprojects = {} self.subproject_dir = '' @@ -329,6 +330,9 @@ class Build: def get_data(self) -> T.List['Data']: return self.data + def get_symlinks(self) -> T.List['SymlinkData']: + return self.symlinks + def get_emptydir(self) -> T.List['EmptyDir']: return self.emptydir @@ -2802,6 +2806,18 @@ class Data(HoldableObject): self.subproject = subproject self.data_type = data_type +class SymlinkData(HoldableObject): + def __init__(self, target: str, name: str, install_dir: str, + subproject: str, install_tag: T.Optional[str] = None): + self.target = target + if name != os.path.basename(name): + raise InvalidArguments(f'Link name is "{name}", but link names cannot contain path separators. ' + 'The dir part should be in install_dir.') + self.name = name + self.install_dir = install_dir + self.subproject = subproject + self.install_tag = install_tag + class TestSetup: def __init__(self, exe_wrapper: T.List[str], gdb: bool, timeout_multiplier: int, env: EnvironmentVariables, |