diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2024-03-13 12:48:06 -0700 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2024-03-15 09:15:48 -0700 |
| commit | b1340e9bb1f243e4de8f2d89415a45ade476a3dc (patch) | |
| tree | cc12133a8c23d2945705814409a67ec157878d01 /mesonbuild/interpreter | |
| parent | 6d713e40f81512eadb0cc4654408d90cb22ba774 (diff) | |
| download | meson-b1340e9bb1f243e4de8f2d89415a45ade476a3dc.tar.gz | |
interpreter: when overriding a dependency make its name match
Otherwise internal dependencies have auto-generated names that are not
human readable. Instead, use the name that the dependency overrides. For
example:
```meson
meson.override_dependency('zlib', declare_dependency())
dep_zlib = dependency('zlib')
assert(dep_zlib.name() == 'zlib')
```
Fixes: #12967
Diffstat (limited to 'mesonbuild/interpreter')
| -rw-r--r-- | mesonbuild/interpreter/mesonmain.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/mesonbuild/interpreter/mesonmain.py b/mesonbuild/interpreter/mesonmain.py index 4d1f427da..fb18fa8b6 100644 --- a/mesonbuild/interpreter/mesonmain.py +++ b/mesonbuild/interpreter/mesonmain.py @@ -1,8 +1,9 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright 2012-2021 The Meson development team -# Copyright © 2021 Intel Corporation +# Copyright © 2021-2024 Intel Corporation from __future__ import annotations +import copy import os import typing as T @@ -347,6 +348,16 @@ class MesonMain(MesonInterpreterObject): if not name: raise InterpreterException('First argument must be a string and cannot be empty') + # Make a copy since we're going to mutate. + # + # dep = declare_dependency() + # meson.override_dependency('foo', dep) + # meson.override_dependency('foo-1.0', dep) + # dep = dependency('foo') + # dep.name() # == 'foo-1.0' + dep = copy.copy(dep) + dep.name = name + optkey = OptionKey('default_library', subproject=self.interpreter.subproject) default_library = self.interpreter.coredata.get_option(optkey) assert isinstance(default_library, str), 'for mypy' |
