diff options
Diffstat (limited to 'mesonbuild/build.py')
| -rw-r--r-- | mesonbuild/build.py | 28 |
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 |
