diff options
Diffstat (limited to 'mesonbuild')
| -rw-r--r-- | mesonbuild/dependencies/base.py | 34 | ||||
| -rw-r--r-- | mesonbuild/dependencies/cmake.py | 4 | ||||
| -rw-r--r-- | mesonbuild/dependencies/configtool.py | 3 | ||||
| -rw-r--r-- | mesonbuild/dependencies/dev.py | 4 | ||||
| -rw-r--r-- | mesonbuild/dependencies/dub.py | 4 | ||||
| -rw-r--r-- | mesonbuild/dependencies/framework.py | 4 | ||||
| -rw-r--r-- | mesonbuild/dependencies/pkgconfig.py | 4 | ||||
| -rw-r--r-- | mesonbuild/dependencies/platform.py | 5 |
8 files changed, 44 insertions, 18 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 4536746d9..1de6e1bcf 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -129,7 +129,9 @@ DependencyTypeName = T.NewType('DependencyTypeName', str) class Dependency(HoldableObject): - def __init__(self, type_name: DependencyTypeName, kwargs: DependencyObjectKWs) -> None: + type_name: DependencyTypeName + + def __init__(self, kwargs: DependencyObjectKWs) -> None: # This allows two Dependencies to be compared even after being copied. # The purpose is to allow the name to be changed, but still have a proper comparison self._id = uuid.uuid4().int @@ -137,7 +139,6 @@ class Dependency(HoldableObject): self.version: T.Optional[str] = None self.language: T.Optional[str] = None # None means C-like self.is_found = False - self.type_name = type_name self.compile_args: T.List[str] = [] self.link_args: T.List[str] = [] # Raw -L and -l arguments without manual library searching @@ -298,6 +299,9 @@ class Dependency(HoldableObject): return self class InternalDependency(Dependency): + + type_name = DependencyTypeName('internal') + def __init__(self, version: str, incdirs: T.List['IncludeDirs'], compile_args: T.List[str], link_args: T.List[str], libraries: T.List[LibTypes], @@ -308,7 +312,7 @@ class InternalDependency(Dependency): d_module_versions: T.List[T.Union[str, int]], d_import_dirs: T.List['IncludeDirs'], objects: T.List['ExtractedObjects'], name: T.Optional[str] = None): - super().__init__(DependencyTypeName('internal'), {}) + super().__init__({}) self.version = version self.is_found = True self.include_directories = incdirs @@ -412,10 +416,10 @@ class InternalDependency(Dependency): return new_dep class ExternalDependency(Dependency): - def __init__(self, type_name: DependencyTypeName, environment: 'Environment', kwargs: DependencyObjectKWs, language: T.Optional[str] = None): - Dependency.__init__(self, type_name, kwargs) + def __init__(self, environment: 'Environment', kwargs: DependencyObjectKWs, language: T.Optional[str] = None): + Dependency.__init__(self, kwargs) self.env = environment - self.name = type_name # default + self.name = str(self.type_name) self.is_found = False self.language = language self.version_reqs = kwargs.get('version', []) @@ -499,8 +503,11 @@ class ExternalDependency(Dependency): class NotFoundDependency(Dependency): + + type_name = DependencyTypeName('not-found') + def __init__(self, name: str, environment: 'Environment') -> None: - super().__init__(DependencyTypeName('not-found'), {}) + super().__init__({}) self.env = environment self.name = name self.is_found = False @@ -514,9 +521,12 @@ class NotFoundDependency(Dependency): class ExternalLibrary(ExternalDependency): + + type_name = DependencyTypeName('library') + def __init__(self, name: str, link_args: T.List[str], environment: 'Environment', language: str, silent: bool = False) -> None: - super().__init__(DependencyTypeName('library'), environment, {}, language=language) + super().__init__(environment, {}, language=language) self.name = name self.language = language self.is_found = False @@ -660,9 +670,11 @@ class SystemDependency(ExternalDependency): """Dependency base for System type dependencies.""" + type_name = DependencyTypeName('system') + def __init__(self, name: str, env: 'Environment', kwargs: DependencyObjectKWs, language: T.Optional[str] = None) -> None: - super().__init__(DependencyTypeName('system'), env, kwargs, language=language) + super().__init__(env, kwargs, language=language) self.name = name @staticmethod @@ -674,9 +686,11 @@ class BuiltinDependency(ExternalDependency): """Dependency base for Builtin type dependencies.""" + type_name = DependencyTypeName('builtin') + def __init__(self, name: str, env: 'Environment', kwargs: DependencyObjectKWs, language: T.Optional[str] = None) -> None: - super().__init__(DependencyTypeName('builtin'), env, kwargs, language=language) + super().__init__(env, kwargs, language=language) self.name = name @staticmethod diff --git a/mesonbuild/dependencies/cmake.py b/mesonbuild/dependencies/cmake.py index 066bb2900..2e7d19465 100644 --- a/mesonbuild/dependencies/cmake.py +++ b/mesonbuild/dependencies/cmake.py @@ -39,6 +39,8 @@ class CMakeDependency(ExternalDependency): class_cmake_generators = ['', 'Ninja', 'Unix Makefiles', 'Visual Studio 10 2010'] class_working_generator: T.Optional[str] = None + type_name = DependencyTypeName('cmake') + def _gen_exception(self, msg: str) -> DependencyException: return DependencyException(f'Dependency {self.name} not found: {msg}') @@ -88,7 +90,7 @@ class CMakeDependency(ExternalDependency): # Ensure that the list is unique self.language_list = list(set(self.language_list)) - super().__init__(DependencyTypeName('cmake'), environment, kwargs, language=language) + super().__init__(environment, kwargs, language=language) self.name = name self.is_libtool = False diff --git a/mesonbuild/dependencies/configtool.py b/mesonbuild/dependencies/configtool.py index e2721fe3b..fa1d05afc 100644 --- a/mesonbuild/dependencies/configtool.py +++ b/mesonbuild/dependencies/configtool.py @@ -36,9 +36,10 @@ class ConfigToolDependency(ExternalDependency): skip_version: T.Optional[str] = None allow_default_for_cross = False __strip_version = re.compile(r'^[0-9][0-9.]+') + type_name = DependencyTypeName('config-tool') def __init__(self, name: str, environment: 'Environment', kwargs: DependencyObjectKWs, language: T.Optional[str] = None, exclude_paths: T.Optional[T.List[str]] = None): - super().__init__(DependencyTypeName('config-tool'), environment, kwargs, language=language) + super().__init__(environment, kwargs, language=language) self.name = name # You may want to overwrite the class version in some cases self.tools = listify(kwargs.get('tools', self.tools)) diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py index 4d219a589..6b6e13000 100644 --- a/mesonbuild/dependencies/dev.py +++ b/mesonbuild/dependencies/dev.py @@ -17,7 +17,7 @@ from mesonbuild.interpreterbase.decorators import FeatureDeprecated from .. import mesonlib, mlog from ..tooldetect import get_llvm_tool_names from ..mesonlib import version_compare, version_compare_many, search_version -from .base import DependencyException, DependencyMethods, detect_compiler, strip_system_includedirs, strip_system_libdirs, SystemDependency, ExternalDependency, DependencyTypeName +from .base import DependencyException, DependencyMethods, detect_compiler, strip_system_includedirs, strip_system_libdirs, SystemDependency, ExternalDependency from .cmake import CMakeDependency from .configtool import ConfigToolDependency from .detect import packages @@ -390,7 +390,7 @@ class LLVMDependencyCMake(CMakeDependency): compilers = env.coredata.compilers[for_machine] if not compilers or not {'c', 'cpp'}.issubset(compilers): # Initialize basic variables - ExternalDependency.__init__(self, DependencyTypeName('cmake'), env, kwargs) + ExternalDependency.__init__(self, env, kwargs) # Initialize CMake specific variables self.found_modules: T.List[str] = [] diff --git a/mesonbuild/dependencies/dub.py b/mesonbuild/dependencies/dub.py index 2166a951e..e00a7232a 100644 --- a/mesonbuild/dependencies/dub.py +++ b/mesonbuild/dependencies/dub.py @@ -68,6 +68,8 @@ class DubDependency(ExternalDependency): class_dubbin_searched = False class_cache_dir = '' + type_name = DependencyTypeName('dub') + # Map Meson Compiler ID's to Dub Compiler ID's _ID_MAP: T.Mapping[str, str] = { 'dmd': 'dmd', @@ -76,7 +78,7 @@ class DubDependency(ExternalDependency): } def __init__(self, name: str, environment: 'Environment', kwargs: DependencyObjectKWs): - super().__init__(DependencyTypeName('dub'), environment, kwargs, language='d') + super().__init__(environment, kwargs, language='d') self.name = name from ..compilers.d import DCompiler, d_feature_args diff --git a/mesonbuild/dependencies/framework.py b/mesonbuild/dependencies/framework.py index a23b4a66b..9c897614f 100644 --- a/mesonbuild/dependencies/framework.py +++ b/mesonbuild/dependencies/framework.py @@ -16,9 +16,11 @@ if T.TYPE_CHECKING: class ExtraFrameworkDependency(ExternalDependency): system_framework_paths: T.Optional[T.List[str]] = None + type_name = DependencyTypeName('extraframeworks') + def __init__(self, name: str, env: 'Environment', kwargs: DependencyObjectKWs, language: T.Optional[str] = None) -> None: paths = stringlistify(kwargs.get('paths', [])) - super().__init__(DependencyTypeName('extraframeworks'), env, kwargs, language=language) + super().__init__(env, kwargs, language=language) self.name = name # Full path to framework directory self.framework_path: T.Optional[str] = None diff --git a/mesonbuild/dependencies/pkgconfig.py b/mesonbuild/dependencies/pkgconfig.py index b628e005b..163f98959 100644 --- a/mesonbuild/dependencies/pkgconfig.py +++ b/mesonbuild/dependencies/pkgconfig.py @@ -306,10 +306,12 @@ class PkgConfigCLI(PkgConfigInterface): class PkgConfigDependency(ExternalDependency): + type_name = DependencyTypeName('pkgconfig') + def __init__(self, name: str, environment: Environment, kwargs: DependencyObjectKWs, language: T.Optional[str] = None, extra_paths: T.Optional[T.List[str]] = None) -> None: - super().__init__(DependencyTypeName('pkgconfig'), environment, kwargs, language=language) + super().__init__(environment, kwargs, language=language) self.name = name self.is_libtool = False self.extra_paths = extra_paths or [] diff --git a/mesonbuild/dependencies/platform.py b/mesonbuild/dependencies/platform.py index 49ec980b2..954556f41 100644 --- a/mesonbuild/dependencies/platform.py +++ b/mesonbuild/dependencies/platform.py @@ -15,8 +15,11 @@ if T.TYPE_CHECKING: from .base import DependencyObjectKWs class AppleFrameworks(ExternalDependency): + + type_name = DependencyTypeName('appleframeworks') + def __init__(self, env: 'Environment', kwargs: DependencyObjectKWs) -> None: - super().__init__(DependencyTypeName('appleframeworks'), env, kwargs) + super().__init__(env, kwargs) modules = kwargs.get('modules', []) if not modules: raise DependencyException("AppleFrameworks dependency requires at least one module.") |
