From a1ef957e349583f9affdce5b5a4f094860e91037 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Mon, 6 Feb 2023 23:29:27 -0500 Subject: linkers: delay implementations import until detect is run This saves on a 1500-line import at startup and may be skipped entirely if no compiled languages are used. In exchange, we move the implementation to a new file that is imported instead. Followup to commit ab20eb5bbc21ae855bcd211131132d2778602bcf. --- mesonbuild/compilers/asm.py | 2 +- mesonbuild/compilers/c.py | 2 +- mesonbuild/compilers/compilers.py | 3 ++- mesonbuild/compilers/cpp.py | 2 +- mesonbuild/compilers/cuda.py | 2 +- mesonbuild/compilers/d.py | 2 +- mesonbuild/compilers/detect.py | 2 +- mesonbuild/compilers/fortran.py | 2 +- mesonbuild/compilers/mixins/arm.py | 2 +- mesonbuild/compilers/mixins/clang.py | 2 +- mesonbuild/compilers/mixins/clike.py | 2 +- mesonbuild/compilers/objc.py | 2 +- mesonbuild/compilers/objcpp.py | 2 +- mesonbuild/compilers/rust.py | 2 +- mesonbuild/compilers/swift.py | 2 +- 15 files changed, 16 insertions(+), 15 deletions(-) (limited to 'mesonbuild/compilers') diff --git a/mesonbuild/compilers/asm.py b/mesonbuild/compilers/asm.py index 17b11ba..e34b4a6 100644 --- a/mesonbuild/compilers/asm.py +++ b/mesonbuild/compilers/asm.py @@ -7,7 +7,7 @@ from .mixins.metrowerks import MetrowerksCompiler, mwasmarm_instruction_set_args if T.TYPE_CHECKING: from ..environment import Environment - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice from ..envconfig import MachineInfo diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py index c1dafd0..d514650 100644 --- a/mesonbuild/compilers/c.py +++ b/mesonbuild/compilers/c.py @@ -47,7 +47,7 @@ if T.TYPE_CHECKING: from ..dependencies import Dependency from ..envconfig import MachineInfo from ..environment import Environment - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice from ..programs import ExternalProgram from .compilers import CompileCheckMode diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 76f9e0e..3fd5896 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -36,7 +36,8 @@ if T.TYPE_CHECKING: from ..coredata import MutableKeyedOptionDictType, KeyedOptionDictType from ..envconfig import MachineInfo from ..environment import Environment - from ..linkers import DynamicLinker, RSPFileSyntax + from ..linkers import RSPFileSyntax + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice from ..dependencies import Dependency diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py index dbdcb2f..3f8bf00 100644 --- a/mesonbuild/compilers/cpp.py +++ b/mesonbuild/compilers/cpp.py @@ -48,7 +48,7 @@ if T.TYPE_CHECKING: from ..dependencies import Dependency from ..envconfig import MachineInfo from ..environment import Environment - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice from ..programs import ExternalProgram CompilerMixinBase = CLikeCompiler diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py index bbc2fc8..8ed7fa4 100644 --- a/mesonbuild/compilers/cuda.py +++ b/mesonbuild/compilers/cuda.py @@ -34,7 +34,7 @@ if T.TYPE_CHECKING: from ..dependencies import Dependency from ..environment import Environment # noqa: F401 from ..envconfig import MachineInfo - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice from ..programs import ExternalProgram diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index 4cdda00..c6e70b2 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -43,7 +43,7 @@ if T.TYPE_CHECKING: from ..programs import ExternalProgram from ..envconfig import MachineInfo from ..environment import Environment - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice CompilerMixinBase = Compiler diff --git a/mesonbuild/compilers/detect.py b/mesonbuild/compilers/detect.py index f6d1c42..5ac19c9 100644 --- a/mesonbuild/compilers/detect.py +++ b/mesonbuild/compilers/detect.py @@ -36,7 +36,7 @@ if T.TYPE_CHECKING: from .cpp import CPPCompiler from .fortran import FortranCompiler from .rust import RustCompiler - from ..linkers import StaticLinker, DynamicLinker + from ..linkers.linkers import StaticLinker, DynamicLinker from ..environment import Environment from ..programs import ExternalProgram diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py index e767dcd..7c836b7 100644 --- a/mesonbuild/compilers/fortran.py +++ b/mesonbuild/compilers/fortran.py @@ -40,7 +40,7 @@ if T.TYPE_CHECKING: from ..dependencies import Dependency from ..envconfig import MachineInfo from ..environment import Environment - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice from ..programs import ExternalProgram from .compilers import CompileCheckMode diff --git a/mesonbuild/compilers/mixins/arm.py b/mesonbuild/compilers/mixins/arm.py index e8efae1..7c53327 100644 --- a/mesonbuild/compilers/mixins/arm.py +++ b/mesonbuild/compilers/mixins/arm.py @@ -19,7 +19,7 @@ import os import typing as T from ... import mesonlib -from ...linkers import ArmClangDynamicLinker +from ...linkers.linkers import ArmClangDynamicLinker from ...mesonlib import OptionKey from ..compilers import clike_debug_args from .clang import clang_color_args diff --git a/mesonbuild/compilers/mixins/clang.py b/mesonbuild/compilers/mixins/clang.py index cdb4c23..b43b246 100644 --- a/mesonbuild/compilers/mixins/clang.py +++ b/mesonbuild/compilers/mixins/clang.py @@ -20,7 +20,7 @@ import shutil import typing as T from ... import mesonlib -from ...linkers import AppleDynamicLinker, ClangClDynamicLinker, LLVMDynamicLinker, GnuGoldDynamicLinker, \ +from ...linkers.linkers import AppleDynamicLinker, ClangClDynamicLinker, LLVMDynamicLinker, GnuGoldDynamicLinker, \ MoldDynamicLinker from ...mesonlib import OptionKey from ..compilers import CompileCheckMode diff --git a/mesonbuild/compilers/mixins/clike.py b/mesonbuild/compilers/mixins/clike.py index 4ebec3f..2649cae 100644 --- a/mesonbuild/compilers/mixins/clike.py +++ b/mesonbuild/compilers/mixins/clike.py @@ -35,7 +35,7 @@ from pathlib import Path from ... import arglist from ... import mesonlib from ... import mlog -from ...linkers import GnuLikeDynamicLinkerMixin, SolarisDynamicLinker, CompCertDynamicLinker +from ...linkers.linkers import GnuLikeDynamicLinkerMixin, SolarisDynamicLinker, CompCertDynamicLinker from ...mesonlib import LibType from ...coredata import OptionKey from .. import compilers diff --git a/mesonbuild/compilers/objc.py b/mesonbuild/compilers/objc.py index 83dcaad..cb8eb9e 100644 --- a/mesonbuild/compilers/objc.py +++ b/mesonbuild/compilers/objc.py @@ -27,7 +27,7 @@ if T.TYPE_CHECKING: from ..programs import ExternalProgram from ..envconfig import MachineInfo from ..environment import Environment - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice diff --git a/mesonbuild/compilers/objcpp.py b/mesonbuild/compilers/objcpp.py index 1f9f756..530bc7c 100644 --- a/mesonbuild/compilers/objcpp.py +++ b/mesonbuild/compilers/objcpp.py @@ -27,7 +27,7 @@ if T.TYPE_CHECKING: from ..programs import ExternalProgram from ..envconfig import MachineInfo from ..environment import Environment - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice class ObjCPPCompiler(CLikeCompiler, Compiler): diff --git a/mesonbuild/compilers/rust.py b/mesonbuild/compilers/rust.py index 4fc3a49..13674ed 100644 --- a/mesonbuild/compilers/rust.py +++ b/mesonbuild/compilers/rust.py @@ -26,7 +26,7 @@ if T.TYPE_CHECKING: from ..coredata import MutableKeyedOptionDictType, KeyedOptionDictType from ..envconfig import MachineInfo from ..environment import Environment # noqa: F401 - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice from ..programs import ExternalProgram from ..dependencies import Dependency diff --git a/mesonbuild/compilers/swift.py b/mesonbuild/compilers/swift.py index ebf29f8..19866e2 100644 --- a/mesonbuild/compilers/swift.py +++ b/mesonbuild/compilers/swift.py @@ -23,7 +23,7 @@ from .compilers import Compiler, swift_buildtype_args, clike_debug_args if T.TYPE_CHECKING: from ..envconfig import MachineInfo from ..environment import Environment - from ..linkers import DynamicLinker + from ..linkers.linkers import DynamicLinker from ..mesonlib import MachineChoice swift_optimization_args = { -- cgit v1.1