From be4a5cc80d87fc5ca98d4617061e9feae1a7c3f0 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Mon, 4 Dec 2023 13:26:40 -0800 Subject: [PATCH] dependencies: Make MissingCompiler an implementation detail Since type checkers now view MisingCompiler as a Compiler, and it provides a method to determine that it is missing (language == 'missing'), we don't need to expose it anywhere, it's just an implementation detail of the dependencies.base module. --- mesonbuild/cmake/tracetargets.py | 3 +-- mesonbuild/dependencies/__init__.py | 3 +-- mesonbuild/dependencies/base.py | 4 ++-- mesonbuild/dependencies/qt.py | 3 +-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/mesonbuild/cmake/tracetargets.py b/mesonbuild/cmake/tracetargets.py index 20c7462d147a..b969acc7aaec 100644 --- a/mesonbuild/cmake/tracetargets.py +++ b/mesonbuild/cmake/tracetargets.py @@ -13,7 +13,6 @@ from .traceparser import CMakeTraceParser from ..environment import Environment from ..compilers import Compiler - from ..dependencies import MissingCompiler class ResolvedTarget: def __init__(self) -> None: @@ -26,7 +25,7 @@ def resolve_cmake_trace_targets(target_name: str, trace: 'CMakeTraceParser', env: 'Environment', *, - clib_compiler: T.Union['MissingCompiler', 'Compiler'] = None, + clib_compiler: T.Optional[Compiler] = None, not_found_warning: T.Callable[[str], None] = lambda x: None) -> ResolvedTarget: res = ResolvedTarget() targets = [target_name] diff --git a/mesonbuild/dependencies/__init__.py b/mesonbuild/dependencies/__init__.py index c6dabc50eacc..f251220f49e5 100644 --- a/mesonbuild/dependencies/__init__.py +++ b/mesonbuild/dependencies/__init__.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from .base import Dependency, InternalDependency, ExternalDependency, NotFoundDependency, MissingCompiler +from .base import Dependency, InternalDependency, ExternalDependency, NotFoundDependency from .base import ( ExternalLibrary, DependencyException, DependencyMethods, BuiltinDependency, SystemDependency, get_leaf_external_dependencies) @@ -28,7 +28,6 @@ 'ExternalLibrary', 'DependencyException', 'DependencyMethods', - 'MissingCompiler', 'find_external_dependency', 'get_dep_identifier', diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index db58da82abdd..cfe272165cef 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -374,7 +374,7 @@ def __init__(self, type_name: DependencyTypeName, environment: 'Environment', kw # Is this dependency to be run on the build platform? self.clib_compiler = detect_compiler(self.name, environment, self.for_machine, self.language) - def get_compiler(self) -> T.Union['MissingCompiler', 'Compiler']: + def get_compiler(self) -> Compiler: return self.clib_compiler def get_partial_dependency(self, *, compile_args: bool = False, @@ -582,7 +582,7 @@ def process_method_kw(possible: T.Iterable[DependencyMethods], kwargs: Dependenc return methods def detect_compiler(name: str, env: 'Environment', for_machine: MachineChoice, - language: T.Optional[str]) -> T.Union['MissingCompiler', 'Compiler']: + language: T.Optional[str]) -> Compiler: """Given a language and environment find the compiler used.""" compilers = env.coredata.compilers[for_machine] diff --git a/mesonbuild/dependencies/qt.py b/mesonbuild/dependencies/qt.py index 52e1bd4a3843..d12fb56e14af 100644 --- a/mesonbuild/dependencies/qt.py +++ b/mesonbuild/dependencies/qt.py @@ -38,7 +38,6 @@ from ..compilers import Compiler from ..envconfig import MachineInfo from ..environment import Environment - from ..dependencies import MissingCompiler from ..interpreter.kwargs import Dependency as DependencyKw @@ -132,7 +131,7 @@ class _QtBase: """Mixin class for shared components between PkgConfig and Qmake.""" link_args: T.List[str] - clib_compiler: T.Union['MissingCompiler', 'Compiler'] + clib_compiler: Compiler env: 'Environment' libexecdir: T.Optional[str] = None