summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/dependencyfallbacks.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2024-04-14 12:58:30 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2025-02-13 23:57:48 +0200
commitd37d649b08b832d52fa684bc0506829fb40d5261 (patch)
treec66e1461e91d6349457b826978e866fdabb19de1 /mesonbuild/interpreter/dependencyfallbacks.py
parentea678ed82938ceac00682b2695b57193d36b71b4 (diff)
downloadmeson-d37d649b08b832d52fa684bc0506829fb40d5261.tar.gz
Make all Meson level options overridable per subproject.
Diffstat (limited to 'mesonbuild/interpreter/dependencyfallbacks.py')
-rw-r--r--mesonbuild/interpreter/dependencyfallbacks.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/mesonbuild/interpreter/dependencyfallbacks.py b/mesonbuild/interpreter/dependencyfallbacks.py
index f7a1b99fe..6f5a0e47e 100644
--- a/mesonbuild/interpreter/dependencyfallbacks.py
+++ b/mesonbuild/interpreter/dependencyfallbacks.py
@@ -4,6 +4,8 @@
from __future__ import annotations
+import copy
+
from .interpreterobjects import extract_required_kwarg
from .. import mlog
from .. import dependencies
@@ -23,8 +25,11 @@ if T.TYPE_CHECKING:
class DependencyFallbacksHolder(MesonInterpreterObject):
- def __init__(self, interpreter: 'Interpreter', names: T.List[str], allow_fallback: T.Optional[bool] = None,
- default_options: T.Optional[T.Dict[OptionKey, str]] = None) -> None:
+ def __init__(self,
+ interpreter: 'Interpreter',
+ names: T.List[str],
+ allow_fallback: T.Optional[bool] = None,
+ default_options: T.Optional[T.Dict[str, str]] = None) -> None:
super().__init__(subproject=interpreter.subproject)
self.interpreter = interpreter
self.subproject = interpreter.subproject
@@ -123,7 +128,8 @@ class DependencyFallbacksHolder(MesonInterpreterObject):
if static is not None and 'default_library' not in default_options:
default_library = 'static' if static else 'shared'
mlog.log(f'Building fallback subproject with default_library={default_library}')
- default_options[OptionKey('default_library')] = default_library
+ default_options = copy.copy(default_options)
+ default_options['default_library'] = default_library
func_kwargs['default_options'] = default_options
# Configure the subproject