diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2020-01-06 12:11:19 +0100 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2020-01-28 21:18:25 +0200 |
commit | 668610c0d2b0f3a66d96022eb57afe5b09c3a2b7 (patch) | |
tree | b35d68d125f7ae9b9df7bfc122236a4c922511f5 /mesonbuild/backend/backends.py | |
parent | 3f8d6af9c2110bc1b3c94dd7b638d5b7eb1208c0 (diff) | |
download | meson-668610c0d2b0f3a66d96022eb57afe5b09c3a2b7.zip meson-668610c0d2b0f3a66d96022eb57afe5b09c3a2b7.tar.gz meson-668610c0d2b0f3a66d96022eb57afe5b09c3a2b7.tar.bz2 |
backend: refactor: set self.interpreter in the constructor
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() |