aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2022-03-29 13:29:03 -0700
committerJussi Pakkanen <jpakkane@gmail.com>2022-06-08 23:19:09 +0300
commita8521fef70ef76fb742d80aceb2e9ed634bd6a70 (patch)
tree4320c87eefc24d3a54bc99d91bda65d29a64e558 /mesonbuild/build.py
parent9061c3a52d355e478cbf83a6110b4cc3d2330ba6 (diff)
downloadmeson-a8521fef70ef76fb742d80aceb2e9ed634bd6a70.zip
meson-a8521fef70ef76fb742d80aceb2e9ed634bd6a70.tar.gz
meson-a8521fef70ef76fb742d80aceb2e9ed634bd6a70.tar.bz2
build: use a helper to process set install tags
Which can be shared by BuildTarget
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 50292d2..a8452da 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -113,6 +113,18 @@ known_shmod_kwargs = known_build_target_kwargs | {'vs_module_defs'}
known_stlib_kwargs = known_build_target_kwargs | {'pic', 'prelink'}
known_jar_kwargs = known_exe_kwargs | {'main_class', 'java_resources'}
+def _process_install_tag(install_tag: T.List[T.Optional[str]],
+ num_outputs: int) -> T.List[T.Optional[str]]:
+ _install_tag: T.List[T.Optional[str]]
+ if not install_tag:
+ _install_tag = [None] * num_outputs
+ elif len(install_tag) == 1:
+ _install_tag = list(install_tag) * num_outputs
+ else:
+ _install_tag = list(install_tag)
+ return _install_tag
+
+
@lru_cache(maxsize=None)
def get_target_macos_dylib_install_name(ld) -> str:
name = ['@rpath/', ld.prefix, ld.name]
@@ -2451,10 +2463,7 @@ class CustomTarget(Target, CommandBase):
self.install = install
self.install_dir = list(install_dir or [])
self.install_mode = install_mode
- _install_tag: T.List[T.Optional[str]] = [None] if not install_tag else stringlistify(install_tag)
- if len(_install_tag) == 1:
- _install_tag = list(_install_tag) * len(self.outputs)
- self.install_tag = _install_tag
+ self.install_tag = _process_install_tag(install_tag, len(self.outputs))
self.name = name if name else self.outputs[0]
# Whether to use absolute paths for all files on the commandline