summaryrefslogtreecommitdiff
path: root/mesonbuild/modules/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/modules/__init__.py')
-rw-r--r--mesonbuild/modules/__init__.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
index 56370d17f..068194026 100644
--- a/mesonbuild/modules/__init__.py
+++ b/mesonbuild/modules/__init__.py
@@ -15,6 +15,7 @@
# This file contains the base representation for import('modname')
from __future__ import annotations
+import dataclasses
import typing as T
from .. import mesonlib
@@ -163,6 +164,17 @@ class ModuleObject(HoldableObject):
class MutableModuleObject(ModuleObject):
pass
+
+@dataclasses.dataclass
+class ModuleInfo:
+
+ """Metadata about a Module."""
+
+ name: str
+ added: T.Optional[str] = None
+ deprecated: T.Optional[str] = None
+
+
class NewExtensionModule(ModuleObject):
"""Class for modern modules
@@ -170,6 +182,8 @@ class NewExtensionModule(ModuleObject):
provides the found method.
"""
+ INFO: ModuleInfo
+
def __init__(self) -> None:
super().__init__()
self.methods.update({
@@ -203,6 +217,10 @@ class NotFoundExtensionModule(NewExtensionModule):
provides the found method.
"""
+ def __init__(self, name: str) -> None:
+ super().__init__()
+ self.INFO = ModuleInfo(name)
+
@staticmethod
def found() -> bool:
return False