summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/backends.py33
-rw-r--r--mesonbuild/backend/ninjabackend.py5
-rw-r--r--mesonbuild/backend/vs2010backend.py21
-rw-r--r--mesonbuild/backend/vs2012backend.py5
-rw-r--r--mesonbuild/backend/vs2013backend.py5
-rw-r--r--mesonbuild/backend/vs2015backend.py4
-rw-r--r--mesonbuild/backend/vs2017backend.py5
-rw-r--r--mesonbuild/backend/vs2019backend.py5
-rw-r--r--mesonbuild/backend/vs2022backend.py5
-rw-r--r--mesonbuild/backend/xcodebackend.py5
-rw-r--r--mesonbuild/interpreter/interpreter.py4
11 files changed, 43 insertions, 54 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 28a1ee359..19f856b68 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -39,7 +39,7 @@ if T.TYPE_CHECKING:
from ..arglist import CompilerArgs
from ..compilers import Compiler
from ..environment import Environment
- from ..interpreter import Interpreter, Test
+ from ..interpreter import Test
from ..linkers.linkers import StaticLinker
from ..mesonlib import FileMode, FileOrString
from ..options import ElementaryOptionValues
@@ -217,47 +217,47 @@ class TestSerialisation:
assert isinstance(self.exe_wrapper, programs.ExternalProgram)
-def get_backend_from_name(backend: str, build: T.Optional[build.Build] = None, interpreter: T.Optional['Interpreter'] = None) -> T.Optional['Backend']:
+def get_backend_from_name(backend: str, build: T.Optional[build.Build] = None) -> T.Optional['Backend']:
if backend == 'ninja':
from . import ninjabackend
- return ninjabackend.NinjaBackend(build, interpreter)
+ return ninjabackend.NinjaBackend(build)
elif backend == 'vs':
from . import vs2010backend
- return vs2010backend.autodetect_vs_version(build, interpreter)
+ return vs2010backend.autodetect_vs_version(build)
elif backend == 'vs2010':
from . import vs2010backend
- return vs2010backend.Vs2010Backend(build, interpreter)
+ return vs2010backend.Vs2010Backend(build)
elif backend == 'vs2012':
from . import vs2012backend
- return vs2012backend.Vs2012Backend(build, interpreter)
+ return vs2012backend.Vs2012Backend(build)
elif backend == 'vs2013':
from . import vs2013backend
- return vs2013backend.Vs2013Backend(build, interpreter)
+ return vs2013backend.Vs2013Backend(build)
elif backend == 'vs2015':
from . import vs2015backend
- return vs2015backend.Vs2015Backend(build, interpreter)
+ return vs2015backend.Vs2015Backend(build)
elif backend == 'vs2017':
from . import vs2017backend
- return vs2017backend.Vs2017Backend(build, interpreter)
+ return vs2017backend.Vs2017Backend(build)
elif backend == 'vs2019':
from . import vs2019backend
- return vs2019backend.Vs2019Backend(build, interpreter)
+ return vs2019backend.Vs2019Backend(build)
elif backend == 'vs2022':
from . import vs2022backend
- return vs2022backend.Vs2022Backend(build, interpreter)
+ return vs2022backend.Vs2022Backend(build)
elif backend == 'xcode':
from . import xcodebackend
- return xcodebackend.XCodeBackend(build, interpreter)
+ return xcodebackend.XCodeBackend(build)
elif backend == 'none':
from . import nonebackend
- return nonebackend.NoneBackend(build, interpreter)
+ return nonebackend.NoneBackend(build)
return None
-def get_genvslite_backend(genvsname: str, build: T.Optional[build.Build] = None, interpreter: T.Optional['Interpreter'] = None) -> T.Optional['Backend']:
+def get_genvslite_backend(genvsname: str, build: T.Optional[build.Build] = None) -> T.Optional['Backend']:
if genvsname == 'vs2022':
from . import vs2022backend
- return vs2022backend.Vs2022Backend(build, interpreter, gen_lite = True)
+ return vs2022backend.Vs2022Backend(build, gen_lite = True)
return None
# This class contains the basic functionality that is needed by all backends.
@@ -267,14 +267,13 @@ class Backend:
environment: T.Optional['Environment']
name = '<UNKNOWN>'
- def __init__(self, build: T.Optional[build.Build], interpreter: T.Optional['Interpreter']):
+ def __init__(self, build: T.Optional[build.Build]):
# 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: T.Set[str] = set()
self.build_dir = self.environment.get_build_dir()
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 166b118e3..3fd82a85b 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -41,7 +41,6 @@ if T.TYPE_CHECKING:
from .._typing import ImmutableListProtocol
from ..build import ExtractedObjects, LibTypes
- from ..interpreter import Interpreter
from ..linkers.linkers import DynamicLinker, StaticLinker
from ..compilers.cs import CsCompiler
from ..compilers.fortran import FortranCompiler
@@ -479,8 +478,8 @@ class RustCrate:
class NinjaBackend(backends.Backend):
- def __init__(self, build: T.Optional[build.Build], interpreter: T.Optional[Interpreter]):
- super().__init__(build, interpreter)
+ def __init__(self, build: T.Optional[build.Build]):
+ super().__init__(build)
self.name = 'ninja'
self.ninja_filename = 'build.ninja'
self.fortran_deps: T.Dict[str, T.Dict[str, File]] = {}
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index adcb2543e..be88eb7fd 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -28,11 +28,10 @@ from .. import coredata
if T.TYPE_CHECKING:
from ..arglist import CompilerArgs
- from ..interpreter import Interpreter
Project = T.Tuple[str, Path, str, MachineChoice]
-def autodetect_vs_version(build: T.Optional[build.Build], interpreter: T.Optional[Interpreter]) -> backends.Backend:
+def autodetect_vs_version(build: T.Optional[build.Build]) -> backends.Backend:
vs_version = os.getenv('VisualStudioVersion', None)
vs_install_dir = os.getenv('VSINSTALLDIR', None)
if not vs_install_dir:
@@ -42,27 +41,27 @@ def autodetect_vs_version(build: T.Optional[build.Build], interpreter: T.Optiona
# vcvarsall.bat doesn't set it, so also use VSINSTALLDIR
if vs_version == '11.0' or 'Visual Studio 11' in vs_install_dir:
from mesonbuild.backend.vs2012backend import Vs2012Backend
- return Vs2012Backend(build, interpreter)
+ return Vs2012Backend(build)
if vs_version == '12.0' or 'Visual Studio 12' in vs_install_dir:
from mesonbuild.backend.vs2013backend import Vs2013Backend
- return Vs2013Backend(build, interpreter)
+ return Vs2013Backend(build)
if vs_version == '14.0' or 'Visual Studio 14' in vs_install_dir:
from mesonbuild.backend.vs2015backend import Vs2015Backend
- return Vs2015Backend(build, interpreter)
+ return Vs2015Backend(build)
if vs_version == '15.0' or 'Visual Studio 17' in vs_install_dir or \
'Visual Studio\\2017' in vs_install_dir:
from mesonbuild.backend.vs2017backend import Vs2017Backend
- return Vs2017Backend(build, interpreter)
+ return Vs2017Backend(build)
if vs_version == '16.0' or 'Visual Studio 19' in vs_install_dir or \
'Visual Studio\\2019' in vs_install_dir:
from mesonbuild.backend.vs2019backend import Vs2019Backend
- return Vs2019Backend(build, interpreter)
+ return Vs2019Backend(build)
if vs_version == '17.0' or 'Visual Studio 22' in vs_install_dir or \
'Visual Studio\\2022' in vs_install_dir:
from mesonbuild.backend.vs2022backend import Vs2022Backend
- return Vs2022Backend(build, interpreter)
+ return Vs2022Backend(build)
if 'Visual Studio 10.0' in vs_install_dir:
- return Vs2010Backend(build, interpreter)
+ return Vs2010Backend(build)
raise MesonException('Could not detect Visual Studio using VisualStudioVersion: {!r} or VSINSTALLDIR: {!r}!\n'
'Please specify the exact backend to use.'.format(vs_version, vs_install_dir))
@@ -135,8 +134,8 @@ class Vs2010Backend(backends.Backend):
name = 'vs2010'
- def __init__(self, build: T.Optional[build.Build], interpreter: T.Optional[Interpreter], gen_lite: bool = False):
- super().__init__(build, interpreter)
+ def __init__(self, build: T.Optional[build.Build], gen_lite: bool = False):
+ super().__init__(build)
self.project_file_version = '10.0.30319.1'
self.sln_file_version = '11.00'
self.sln_version_comment = '2010'
diff --git a/mesonbuild/backend/vs2012backend.py b/mesonbuild/backend/vs2012backend.py
index 922cd60d4..5ed31d92c 100644
--- a/mesonbuild/backend/vs2012backend.py
+++ b/mesonbuild/backend/vs2012backend.py
@@ -10,14 +10,13 @@ from ..mesonlib import MesonException
if T.TYPE_CHECKING:
from ..build import Build
- from ..interpreter import Interpreter
class Vs2012Backend(Vs2010Backend):
name = 'vs2012'
- def __init__(self, build: T.Optional[Build], interpreter: T.Optional[Interpreter]):
- super().__init__(build, interpreter)
+ def __init__(self, build: T.Optional[Build]):
+ super().__init__(build)
self.vs_version = '2012'
self.sln_file_version = '12.00'
self.sln_version_comment = '2012'
diff --git a/mesonbuild/backend/vs2013backend.py b/mesonbuild/backend/vs2013backend.py
index cf5d5980e..c53e64c0c 100644
--- a/mesonbuild/backend/vs2013backend.py
+++ b/mesonbuild/backend/vs2013backend.py
@@ -9,14 +9,13 @@ import typing as T
if T.TYPE_CHECKING:
from ..build import Build
- from ..interpreter import Interpreter
class Vs2013Backend(Vs2010Backend):
name = 'vs2013'
- def __init__(self, build: T.Optional[Build], interpreter: T.Optional[Interpreter]):
- super().__init__(build, interpreter)
+ def __init__(self, build: T.Optional[Build]):
+ super().__init__(build)
self.vs_version = '2013'
self.sln_file_version = '12.00'
self.sln_version_comment = '2013'
diff --git a/mesonbuild/backend/vs2015backend.py b/mesonbuild/backend/vs2015backend.py
index 1862def1a..f5a468f6f 100644
--- a/mesonbuild/backend/vs2015backend.py
+++ b/mesonbuild/backend/vs2015backend.py
@@ -10,14 +10,12 @@ from ..mesonlib import MesonException
if T.TYPE_CHECKING:
from ..build import Build
- from ..interpreter import Interpreter
class Vs2015Backend(Vs2010Backend):
name = 'vs2015'
- def __init__(self, build: T.Optional[Build], interpreter: T.Optional[Interpreter]):
- super().__init__(build, interpreter)
+ def __init__(self, build: T.Optional[Build]):
self.vs_version = '2015'
self.sln_file_version = '12.00'
self.sln_version_comment = '14'
diff --git a/mesonbuild/backend/vs2017backend.py b/mesonbuild/backend/vs2017backend.py
index 372e1ce0d..bf6c33771 100644
--- a/mesonbuild/backend/vs2017backend.py
+++ b/mesonbuild/backend/vs2017backend.py
@@ -12,15 +12,14 @@ from ..mesonlib import MesonException
if T.TYPE_CHECKING:
from ..build import Build
- from ..interpreter import Interpreter
class Vs2017Backend(Vs2010Backend):
name = 'vs2017'
- def __init__(self, build: T.Optional[Build], interpreter: T.Optional[Interpreter]):
- super().__init__(build, interpreter)
+ def __init__(self, build: T.Optional[Build]):
+ super().__init__(build)
self.vs_version = '2017'
self.sln_file_version = '12.00'
self.sln_version_comment = '15'
diff --git a/mesonbuild/backend/vs2019backend.py b/mesonbuild/backend/vs2019backend.py
index 61ad75d5e..bf86a4701 100644
--- a/mesonbuild/backend/vs2019backend.py
+++ b/mesonbuild/backend/vs2019backend.py
@@ -11,15 +11,14 @@ from .vs2010backend import Vs2010Backend
if T.TYPE_CHECKING:
from ..build import Build
- from ..interpreter import Interpreter
class Vs2019Backend(Vs2010Backend):
name = 'vs2019'
- def __init__(self, build: T.Optional[Build], interpreter: T.Optional[Interpreter]):
- super().__init__(build, interpreter)
+ def __init__(self, build: T.Optional[Build]):
+ super().__init__(build)
self.sln_file_version = '12.00'
self.sln_version_comment = 'Version 16'
diff --git a/mesonbuild/backend/vs2022backend.py b/mesonbuild/backend/vs2022backend.py
index ca449a4e5..d7de4be32 100644
--- a/mesonbuild/backend/vs2022backend.py
+++ b/mesonbuild/backend/vs2022backend.py
@@ -11,15 +11,14 @@ from .vs2010backend import Vs2010Backend
if T.TYPE_CHECKING:
from ..build import Build
- from ..interpreter import Interpreter
class Vs2022Backend(Vs2010Backend):
name = 'vs2022'
- def __init__(self, build: T.Optional[Build], interpreter: T.Optional[Interpreter], gen_lite: bool = False):
- super().__init__(build, interpreter, gen_lite=gen_lite)
+ def __init__(self, build: T.Optional[Build], gen_lite: bool = False):
+ super().__init__(build, gen_lite=gen_lite)
self.sln_file_version = '12.00'
self.sln_version_comment = 'Version 17'
diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py
index a4290d58d..7c040a613 100644
--- a/mesonbuild/backend/xcodebackend.py
+++ b/mesonbuild/backend/xcodebackend.py
@@ -17,7 +17,6 @@ from ..options import OptionKey
if T.TYPE_CHECKING:
from ..build import BuildTarget
from ..compilers import Compiler
- from ..interpreter import Interpreter
INDENT = '\t'
XCODETYPEMAP = {'c': 'sourcecode.c.c',
@@ -236,8 +235,8 @@ class XCodeBackend(backends.Backend):
name = 'xcode'
- def __init__(self, build: T.Optional[build.Build], interpreter: T.Optional[Interpreter]):
- super().__init__(build, interpreter)
+ def __init__(self, build: T.Optional[build.Build]):
+ super().__init__(build)
self.project_uid = self.environment.coredata.lang_guids['default'].replace('-', '')[:24]
self.buildtype = T.cast('str', self.environment.coredata.optstore.get_value_for(OptionKey('buildtype')))
self.project_conflist = self.gen_id()
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 88b3fc19a..d3a9142fe 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -1158,10 +1158,10 @@ class Interpreter(InterpreterBase, HoldableObject):
# Use of the '--genvslite vsxxxx' option ultimately overrides any '--backend xxx'
# option the user may specify.
backend_name = self.coredata.optstore.get_value_for(OptionKey('genvslite'))
- self.backend = backends.get_genvslite_backend(backend_name, self.build, self)
+ self.backend = backends.get_genvslite_backend(backend_name, self.build)
else:
backend_name = self.coredata.optstore.get_value_for(OptionKey('backend'))
- self.backend = backends.get_backend_from_name(backend_name, self.build, self)
+ self.backend = backends.get_backend_from_name(backend_name, self.build)
if self.backend is None:
raise InterpreterException(f'Unknown backend "{backend_name}".')