aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/compilers.py59
-rw-r--r--mesonbuild/compilers/fortran.py13
2 files changed, 35 insertions, 37 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 52a2788..3400c48 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -13,8 +13,7 @@
# limitations under the License.
import contextlib, os.path, re, tempfile
-import typing
-from typing import Optional, Tuple, List
+from typing import TYPE_CHECKING, Optional, Tuple, List, Union
from ..linkers import StaticLinker, GnuLikeDynamicLinkerMixin, SolarisDynamicLinker
from .. import coredata
@@ -28,7 +27,7 @@ from ..envconfig import (
Properties,
)
-if typing.TYPE_CHECKING:
+if TYPE_CHECKING:
from ..coredata import OptionDictType
from ..envconfig import MachineInfo
from ..environment import Environment
@@ -522,7 +521,7 @@ class CompilerArgs(list):
return True
return False
- def to_native(self, copy: bool = False) -> typing.List[str]:
+ def to_native(self, copy: bool = False) -> List[str]:
# Check if we need to add --start/end-group for circular dependencies
# between static libraries, and for recursively searching for symbols
# needed by static libraries that are provided by object files or
@@ -669,10 +668,10 @@ class Compiler:
# manually searched.
internal_libs = ()
- LINKER_PREFIX = None # type: typing.Union[None, str, typing.List[str]]
+ LINKER_PREFIX = None # type: Union[None, str, List[str]]
def __init__(self, exelist, version, for_machine: MachineChoice, info: 'MachineInfo',
- linker: typing.Optional['DynamicLinker'] = None, **kwargs):
+ linker: Optional['DynamicLinker'] = None, **kwargs):
if isinstance(exelist, str):
self.exelist = [exelist]
elif isinstance(exelist, list):
@@ -747,10 +746,10 @@ class Compiler:
def get_exelist(self):
return self.exelist[:]
- def get_linker_exelist(self) -> typing.List[str]:
+ def get_linker_exelist(self) -> List[str]:
return self.linker.get_exelist()
- def get_linker_output_args(self, outputname: str) -> typing.List[str]:
+ def get_linker_output_args(self, outputname: str) -> List[str]:
return self.linker.get_output_args(outputname)
def get_builtin_define(self, *args, **kwargs):
@@ -793,10 +792,10 @@ class Compiler:
"""
return self.get_language() in languages_using_ldflags
- def get_linker_args_from_envvars(self) -> typing.List[str]:
+ def get_linker_args_from_envvars(self) -> List[str]:
return self.linker.get_args_from_envvars()
- def get_args_from_envvars(self) -> typing.Tuple[typing.List[str], typing.List[str]]:
+ def get_args_from_envvars(self) -> Tuple[List[str], List[str]]:
"""
Returns a tuple of (compile_flags, link_flags) for the specified language
from the inherited environment
@@ -813,8 +812,8 @@ class Compiler:
if lang not in cflags_mapping:
return [], []
- compile_flags = [] # type: typing.List[str]
- link_flags = [] # type: typing.List[str]
+ compile_flags = [] # type: List[str]
+ link_flags = [] # type: List[str]
env_compile_flags = os.environ.get(cflags_mapping[lang])
log_var(cflags_mapping[lang], env_compile_flags)
@@ -885,7 +884,7 @@ class Compiler:
def get_option_compile_args(self, options):
return []
- def get_option_link_args(self, options: 'OptionDictType') -> typing.List[str]:
+ def get_option_link_args(self, options: 'OptionDictType') -> List[str]:
return self.linker.get_option_args(options)
def check_header(self, *args, **kwargs) -> Tuple[bool, bool]:
@@ -921,7 +920,7 @@ class Compiler:
return args[:]
@classmethod
- def native_args_to_unix(cls, args: typing.List[str]) -> typing.List[str]:
+ def native_args_to_unix(cls, args: List[str]) -> List[str]:
"Always returns a copy that can be independently mutated"
return args[:]
@@ -939,7 +938,7 @@ class Compiler:
'Language {} does not support has_multi_arguments.'.format(
self.get_display_language()))
- def has_multi_link_arguments(self, args: typing.List[str], env: 'Environment') -> Tuple[bool, bool]:
+ def has_multi_link_arguments(self, args: List[str], env: 'Environment') -> Tuple[bool, bool]:
return self.linker.has_multi_arguments(args, env)
def _get_compile_output(self, dirname, mode):
@@ -1053,22 +1052,22 @@ class Compiler:
def get_compile_debugfile_args(self, rel_obj, **kwargs):
return []
- def get_link_debugfile_args(self, targetfile: str) -> typing.List[str]:
+ def get_link_debugfile_args(self, targetfile: str) -> List[str]:
return self.linker.get_debugfile_args(targetfile)
- def get_std_shared_lib_link_args(self) -> typing.List[str]:
+ def get_std_shared_lib_link_args(self) -> List[str]:
return self.linker.get_std_shared_lib_args()
- def get_std_shared_module_link_args(self, options: 'OptionDictType') -> typing.List[str]:
+ def get_std_shared_module_link_args(self, options: 'OptionDictType') -> List[str]:
return self.linker.get_std_shared_module_args(options)
- def get_link_whole_for(self, args: typing.List[str]) -> typing.List[str]:
+ def get_link_whole_for(self, args: List[str]) -> List[str]:
return self.linker.get_link_whole_for(args)
- def get_allow_undefined_link_args(self) -> typing.List[str]:
+ def get_allow_undefined_link_args(self) -> List[str]:
return self.linker.get_allow_undefined_args()
- def no_undefined_link_args(self) -> typing.List[str]:
+ def no_undefined_link_args(self) -> List[str]:
return self.linker.no_undefined_args()
# Compiler arguments needed to enable the given instruction set.
@@ -1079,7 +1078,7 @@ class Compiler:
def build_rpath_args(self, env: 'Environment', build_dir: str, from_dir: str,
rpath_paths: str, build_rpath: str,
- install_rpath: str) -> typing.List[str]:
+ install_rpath: str) -> List[str]:
return self.linker.build_rpath_args(
env, build_dir, from_dir, rpath_paths, build_rpath, install_rpath)
@@ -1110,7 +1109,7 @@ class Compiler:
m = 'Language {} does not support position-independent executable'
raise EnvironmentException(m.format(self.get_display_language()))
- def get_pie_link_args(self) -> typing.List[str]:
+ def get_pie_link_args(self) -> List[str]:
return self.linker.get_pie_args()
def get_argument_syntax(self):
@@ -1132,7 +1131,7 @@ class Compiler:
raise EnvironmentException(
'%s does not support get_profile_use_args ' % self.get_id())
- def get_undefined_link_args(self) -> typing.List[str]:
+ def get_undefined_link_args(self) -> List[str]:
return self.linker.get_undefined_link_args()
def remove_linkerlike_args(self, args):
@@ -1150,21 +1149,21 @@ class Compiler:
def sanitizer_link_args(self, value: str) -> List[str]:
return self.linker.sanitizer_args(value)
- def get_asneeded_args(self) -> typing.List[str]:
+ def get_asneeded_args(self) -> List[str]:
return self.linker.get_asneeded_args()
- def bitcode_args(self) -> typing.List[str]:
+ def bitcode_args(self) -> List[str]:
return self.linker.bitcode_args()
- def get_linker_debug_crt_args(self) -> typing.List[str]:
+ def get_linker_debug_crt_args(self) -> List[str]:
return self.linker.get_debug_crt_args()
- def get_buildtype_linker_args(self, buildtype: str) -> typing.List[str]:
+ def get_buildtype_linker_args(self, buildtype: str) -> List[str]:
return self.linker.get_buildtype_args(buildtype)
def get_soname_args(self, env: 'Environment', prefix: str, shlib_name: str,
- suffix: str, soversion: str, darwin_versions: typing.Tuple[str, str],
- is_shared_module: bool) -> typing.List[str]:
+ suffix: str, soversion: str, darwin_versions: Tuple[str, str],
+ is_shared_module: bool) -> List[str]:
return self.linker.get_soname_args(
env, prefix, shlib_name, suffix, soversion,
darwin_versions, is_shared_module)
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
index fdd6204..f66ff38 100644
--- a/mesonbuild/compilers/fortran.py
+++ b/mesonbuild/compilers/fortran.py
@@ -13,9 +13,8 @@
# limitations under the License.
from pathlib import Path
-from typing import List
+from typing import TYPE_CHECKING, List
import subprocess, os
-import typing
from .. import coredata
from .compilers import (
@@ -36,7 +35,7 @@ from mesonbuild.mesonlib import (
version_compare, EnvironmentException, MesonException, MachineChoice, LibType
)
-if typing.TYPE_CHECKING:
+if TYPE_CHECKING:
from ..envconfig import MachineInfo
@@ -192,7 +191,7 @@ class GnuFortranCompiler(GnuCompiler, FortranCompiler):
'none')})
return opts
- def get_option_compile_args(self, options) -> typing.List[str]:
+ def get_option_compile_args(self, options) -> List[str]:
args = []
std = options['fortran_std']
if std.value != 'none':
@@ -298,7 +297,7 @@ class IntelFortranCompiler(IntelGnuLikeCompiler, FortranCompiler):
'none')})
return opts
- def get_option_compile_args(self, options) -> typing.List[str]:
+ def get_option_compile_args(self, options) -> List[str]:
args = []
std = options['fortran_std']
stds = {'legacy': 'none', 'f95': 'f95', 'f2003': 'f03', 'f2008': 'f08', 'f2018': 'f18'}
@@ -318,7 +317,7 @@ class IntelFortranCompiler(IntelGnuLikeCompiler, FortranCompiler):
def language_stdlib_only_link_flags(self):
return ['-lifcore', '-limf']
- def get_dependency_gen_args(self, outtarget: str, outfile: str) -> typing.List[str]:
+ def get_dependency_gen_args(self, outtarget: str, outfile: str) -> List[str]:
return ['-gen-dep=' + outtarget, '-gen-depformat=make']
@@ -348,7 +347,7 @@ class IntelClFortranCompiler(IntelVisualStudioLikeCompiler, FortranCompiler):
'none')})
return opts
- def get_option_compile_args(self, options) -> typing.List[str]:
+ def get_option_compile_args(self, options) -> List[str]:
args = []
std = options['fortran_std']
stds = {'legacy': 'none', 'f95': 'f95', 'f2003': 'f03', 'f2008': 'f08', 'f2018': 'f18'}