summaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py28
1 files changed, 4 insertions, 24 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 37a437812..ae6770be2 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -22,7 +22,7 @@ from . import programs
from .mesonlib import (
HoldableObject, SecondLevelHolder,
File, MesonException, MachineChoice, PerMachine, OrderedSet, listify,
- extract_as_list, classify_unity_sources,
+ classify_unity_sources,
get_filenames_templates_dict, substitute_values, has_path_sep,
is_parent_path, relpath, PerMachineDefaultable,
MesonBugException, EnvironmentVariables, pickle_load, lazy_property,
@@ -1287,8 +1287,7 @@ class BuildTarget(Target):
# internal deps (added inside self.add_deps()) to override them.
self.add_include_dirs(kwargs.get('include_directories', []))
# Add dependencies (which also have include_directories)
- deplist = extract_as_list(kwargs, 'dependencies')
- self.add_deps(deplist)
+ self.add_deps(kwargs.get('dependencies', []))
# If an item in this list is False, the output corresponding to
# the list index of that item will not be installed
self.install_dir = kwargs.get('install_dir', [])
@@ -1418,8 +1417,7 @@ class BuildTarget(Target):
def get_include_dirs(self) -> T.List['IncludeDirs']:
return self.include_dirs
- def add_deps(self, deps):
- deps = listify(deps)
+ def add_deps(self, deps: T.List[dependencies.Dependency]) -> None:
for dep in deps:
if dep in self.added_deps:
# Prefer to add dependencies to added_deps which have a name
@@ -1447,29 +1445,11 @@ class BuildTarget(Target):
self.external_deps.append(extpart)
# Deps of deps.
self.add_deps(dep.ext_deps)
- elif isinstance(dep, dependencies.Dependency):
+ else:
if dep not in self.external_deps:
self.external_deps.append(dep)
self.process_sourcelist(dep.get_sources())
self.add_deps(dep.ext_deps)
- elif isinstance(dep, BuildTarget):
- raise InvalidArguments(f'Tried to use a build target {dep.name} as a dependency of target {self.name}.\n'
- 'You probably should put it in link_with instead.')
- else:
- # This is a bit of a hack. We do not want Build to know anything
- # about the interpreter so we can't import it and use isinstance.
- # This should be reliable enough.
- if hasattr(dep, 'held_object'):
- # FIXME: subproject is not a real ObjectHolder so we have to do this by hand
- dep = dep.held_object
- if hasattr(dep, 'project_args_frozen') or hasattr(dep, 'global_args_frozen'):
- raise InvalidArguments('Tried to use subproject object as a dependency.\n'
- 'You probably wanted to use a dependency declared in it instead.\n'
- 'Access it by calling get_variable() on the subproject object.')
- raise InvalidArguments(f'Argument is of an unacceptable type {type(dep).__name__!r}.\nMust be '
- 'either an external dependency (returned by find_library() or '
- 'dependency()) or an internal dependency (returned by '
- 'declare_dependency()).')
dep_d_features = dep.d_features