diff options
Diffstat (limited to 'mesonbuild/backend/backends.py')
-rw-r--r-- | mesonbuild/backend/backends.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index d75b7a4..dfbc8be 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -24,6 +24,7 @@ from ..mesonlib import MachineChoice, MesonException, OrderedSet, OptionOverride from ..mesonlib import classify_unity_sources from ..mesonlib import File from ..compilers import CompilerArgs, VisualStudioLikeCompiler +from ..interpreter import Interpreter from collections import OrderedDict import shlex from functools import lru_cache @@ -106,40 +107,41 @@ class TestSerialisation: self.priority = priority self.needs_exe_wrapper = needs_exe_wrapper -def get_backend_from_name(backend, build): +def get_backend_from_name(backend: str, build: T.Optional[build.Build] = None, interpreter: T.Optional[Interpreter] = None) -> T.Optional['Backend']: if backend == 'ninja': from . import ninjabackend - return ninjabackend.NinjaBackend(build) + return ninjabackend.NinjaBackend(build, interpreter) elif backend == 'vs': from . import vs2010backend - return vs2010backend.autodetect_vs_version(build) + return vs2010backend.autodetect_vs_version(build, interpreter) elif backend == 'vs2010': from . import vs2010backend - return vs2010backend.Vs2010Backend(build) + return vs2010backend.Vs2010Backend(build, interpreter) elif backend == 'vs2015': from . import vs2015backend - return vs2015backend.Vs2015Backend(build) + return vs2015backend.Vs2015Backend(build, interpreter) elif backend == 'vs2017': from . import vs2017backend - return vs2017backend.Vs2017Backend(build) + return vs2017backend.Vs2017Backend(build, interpreter) elif backend == 'vs2019': from . import vs2019backend - return vs2019backend.Vs2019Backend(build) + return vs2019backend.Vs2019Backend(build, interpreter) elif backend == 'xcode': from . import xcodebackend - return xcodebackend.XCodeBackend(build) + return xcodebackend.XCodeBackend(build, interpreter) return None # This class contains the basic functionality that is needed by all backends. # Feel free to move stuff in and out of it as you see fit. class Backend: - def __init__(self, build): + def __init__(self, build: T.Optional[build.Build], interpreter: T.Optional[Interpreter]): # Make it possible to construct a dummy backend # This is used for introspection without a build directory if build is None: self.environment = None return self.build = build + self.interpreter = interpreter self.environment = build.environment self.processed_targets = {} self.build_dir = self.environment.get_build_dir() |