diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2024-04-08 10:21:22 -0700 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2024-04-23 11:27:12 -0700 |
| commit | 4f94284013d257bf361b18da6c6d8c80e64cf24f (patch) | |
| tree | 92ee44399945080bcbf98cd2ee7e504299a516b6 | |
| parent | ffa235213cf8b45569abdde84cd1c9aa4e63d6a3 (diff) | |
| download | meson-4f94284013d257bf361b18da6c6d8c80e64cf24f.tar.gz | |
interpreter: implement the `name()` method for `ExternalLibraryHolder`
This allows `cc.find_library().name()` to work, just like
`dependency().name()`.
Fixes: #13053
| -rw-r--r-- | docs/markdown/snippets/find_library_name.md | 3 | ||||
| -rw-r--r-- | docs/yaml/objects/dep.yaml | 3 | ||||
| -rw-r--r-- | mesonbuild/interpreter/interpreterobjects.py | 8 |
3 files changed, 14 insertions, 0 deletions
diff --git a/docs/markdown/snippets/find_library_name.md b/docs/markdown/snippets/find_library_name.md new file mode 100644 index 000000000..ffb18eb85 --- /dev/null +++ b/docs/markdown/snippets/find_library_name.md @@ -0,0 +1,3 @@ +## dependencies created by compiler.find_library implement the `name()` method + +Which would previously result in Meson crashing. diff --git a/docs/yaml/objects/dep.yaml b/docs/yaml/objects/dep.yaml index 52e28faca..76543d2c1 100644 --- a/docs/yaml/objects/dep.yaml +++ b/docs/yaml/objects/dep.yaml @@ -15,6 +15,9 @@ methods: Returns `'internal'` for dependencies created with [[declare_dependency]]. + NOTE: This was not implemented for dep objects returned by + [[compiler.find_library]] until Meson 1.5.0 + - name: get_pkgconfig_variable since: 0.36.0 deprecated: 0.56.0 diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py index edf785c0d..0360e4450 100644 --- a/mesonbuild/interpreter/interpreterobjects.py +++ b/mesonbuild/interpreter/interpreterobjects.py @@ -644,6 +644,7 @@ class ExternalLibraryHolder(ObjectHolder[ExternalLibrary]): self.methods.update({'found': self.found_method, 'type_name': self.type_name_method, 'partial_dependency': self.partial_dependency_method, + 'name': self.name_method, }) @noPosargs @@ -663,6 +664,13 @@ class ExternalLibraryHolder(ObjectHolder[ExternalLibrary]): pdep = self.held_object.get_partial_dependency(**kwargs) return pdep + @FeatureNew('name', '1.5.0') + @noPosargs + @noKwargs + def name_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> str: + return self.held_object.name + + # A machine that's statically known from the cross file class MachineHolder(ObjectHolder['MachineInfo']): def __init__(self, machine_info: 'MachineInfo', interpreter: 'Interpreter'): |
