summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-03-13 12:48:06 -0700
committerDylan Baker <dylan@pnwbakers.com>2024-03-15 09:15:48 -0700
commitb1340e9bb1f243e4de8f2d89415a45ade476a3dc (patch)
treecc12133a8c23d2945705814409a67ec157878d01 /mesonbuild/interpreter
parent6d713e40f81512eadb0cc4654408d90cb22ba774 (diff)
downloadmeson-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.py13
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'