aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-11-09 12:50:07 -0800
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2021-11-24 02:23:57 +0530
commitf29b54dfe421487e86d0cf46d81794e192868f4e (patch)
tree34311727a9cc538aa12a8f056158a2775b4d7eec
parent2eafe9a25f3cf54063b3c9bd90959eeedd35e4ea (diff)
downloadmeson-f29b54dfe421487e86d0cf46d81794e192868f4e.zip
meson-f29b54dfe421487e86d0cf46d81794e192868f4e.tar.gz
meson-f29b54dfe421487e86d0cf46d81794e192868f4e.tar.bz2
build|backend: Fix some type annotations
These currently say the take `Target`, but the really take `BuildTarget | CustomTarget | CustomTargetIndex`.
-rw-r--r--mesonbuild/backend/backends.py18
-rw-r--r--mesonbuild/build.py2
2 files changed, 12 insertions, 8 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index ffdaf9a..19a575e 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -395,15 +395,15 @@ class Backend:
return os.path.join(self.build_to_src, target_dir)
return self.build_to_src
- def get_target_private_dir(self, target: build.Target) -> str:
+ def get_target_private_dir(self, target: T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex]) -> str:
return os.path.join(self.get_target_filename(target, warn_multi_output=False) + '.p')
- def get_target_private_dir_abs(self, target: build.Target) -> str:
+ def get_target_private_dir_abs(self, target: T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex]) -> str:
return os.path.join(self.environment.get_build_dir(), self.get_target_private_dir(target))
@lru_cache(maxsize=None)
def get_target_generated_dir(
- self, target: build.Target,
+ self, target: T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex],
gensrc: T.Union[build.CustomTarget, build.CustomTargetIndex, build.GeneratedList],
src: str) -> str:
"""
@@ -418,7 +418,8 @@ class Backend:
# target that the GeneratedList is used in
return os.path.join(self.get_target_private_dir(target), src)
- def get_unity_source_file(self, target: build.Target, suffix: str, number: int) -> mesonlib.File:
+ def get_unity_source_file(self, target: T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex],
+ suffix: str, number: int) -> mesonlib.File:
# There is a potential conflict here, but it is unlikely that
# anyone both enables unity builds and has a file called foo-unity.cpp.
osrc = f'{target.name}-unity{number}.{suffix}'
@@ -765,7 +766,9 @@ class Backend:
paths.append(libdir)
return paths
- def determine_rpath_dirs(self, target: build.BuildTarget) -> T.Tuple[str, ...]:
+ # This may take other types
+ def determine_rpath_dirs(self, target: T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex]
+ ) -> T.Tuple[str, ...]:
result: OrderedSet[str]
if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
# Need a copy here
@@ -773,8 +776,9 @@ class Backend:
else:
result = OrderedSet()
result.add('meson-out')
- result.update(self.rpaths_for_bundled_shared_libraries(target))
- target.rpath_dirs_to_remove.update([d.encode('utf-8') for d in result])
+ if isinstance(target, build.BuildTarget):
+ result.update(self.rpaths_for_bundled_shared_libraries(target))
+ target.rpath_dirs_to_remove.update([d.encode('utf-8') for d in result])
return tuple(result)
@staticmethod
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 18c0911..6036735 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -695,7 +695,7 @@ class BuildTarget(Target):
self.external_deps: T.List[dependencies.Dependency] = []
self.include_dirs: T.List['IncludeDirs'] = []
self.link_language = kwargs.get('link_language')
- self.link_targets: T.List[BuildTarget] = []
+ self.link_targets: T.List[T.Union['BuildTarget', 'CustomTarget', 'CustomTargetIndex']] = []
self.link_whole_targets = []
self.link_depends = []
self.added_deps = set()