compilers/mixins/ccrx: add type annotations
This commit is contained in:
parent
4d5c745bdc
commit
675874c303
|
@ -17,36 +17,47 @@
|
||||||
import os
|
import os
|
||||||
import typing
|
import typing
|
||||||
|
|
||||||
from ...mesonlib import Popen_safe
|
from ...mesonlib import Popen_safe, EnvironmentException
|
||||||
|
|
||||||
ccrx_buildtype_args = {'plain': [],
|
if typing.TYPE_CHECKING:
|
||||||
|
from ..compilers import CompilerType
|
||||||
|
from ...environment import Environment
|
||||||
|
|
||||||
|
ccrx_buildtype_args = {
|
||||||
|
'plain': [],
|
||||||
'debug': [],
|
'debug': [],
|
||||||
'debugoptimized': [],
|
'debugoptimized': [],
|
||||||
'release': [],
|
'release': [],
|
||||||
'minsize': [],
|
'minsize': [],
|
||||||
'custom': [],
|
'custom': [],
|
||||||
}
|
} # type: typing.Dict[str, typing.List[str]]
|
||||||
|
|
||||||
ccrx_buildtype_linker_args = {'plain': [],
|
ccrx_buildtype_linker_args = {
|
||||||
|
'plain': [],
|
||||||
'debug': [],
|
'debug': [],
|
||||||
'debugoptimized': [],
|
'debugoptimized': [],
|
||||||
'release': [],
|
'release': [],
|
||||||
'minsize': [],
|
'minsize': [],
|
||||||
'custom': [],
|
'custom': [],
|
||||||
}
|
} # type: typing.Dict[str, typing.List[str]]
|
||||||
ccrx_optimization_args = {'0': ['-optimize=0'],
|
|
||||||
|
ccrx_optimization_args = {
|
||||||
|
'0': ['-optimize=0'],
|
||||||
'g': ['-optimize=0'],
|
'g': ['-optimize=0'],
|
||||||
'1': ['-optimize=1'],
|
'1': ['-optimize=1'],
|
||||||
'2': ['-optimize=2'],
|
'2': ['-optimize=2'],
|
||||||
'3': ['-optimize=max'],
|
'3': ['-optimize=max'],
|
||||||
's': ['-optimize=2', '-size']
|
's': ['-optimize=2', '-size']
|
||||||
}
|
} # type: typing.Dict[str, typing.List[str]]
|
||||||
ccrx_debug_args = {False: [],
|
|
||||||
True: ['-debug']}
|
ccrx_debug_args = {
|
||||||
|
False: [],
|
||||||
|
True: ['-debug']
|
||||||
|
} # type: typing.Dict[bool, typing.List[str]]
|
||||||
|
|
||||||
|
|
||||||
class CcrxCompiler:
|
class CcrxCompiler:
|
||||||
def __init__(self, compiler_type):
|
def __init__(self, compiler_type: 'CompilerType'):
|
||||||
if not self.is_cross:
|
if not self.is_cross:
|
||||||
raise EnvironmentException('ccrx supports only cross-compilation.')
|
raise EnvironmentException('ccrx supports only cross-compilation.')
|
||||||
# Check whether 'rlink.exe' is available in path
|
# Check whether 'rlink.exe' is available in path
|
||||||
|
@ -61,70 +72,70 @@ class CcrxCompiler:
|
||||||
self.compiler_type = compiler_type
|
self.compiler_type = compiler_type
|
||||||
# Assembly
|
# Assembly
|
||||||
self.can_compile_suffixes.update('s')
|
self.can_compile_suffixes.update('s')
|
||||||
default_warn_args = []
|
default_warn_args = [] # type: typing.List[str]
|
||||||
self.warn_args = {'0': [],
|
self.warn_args = {'0': [],
|
||||||
'1': default_warn_args,
|
'1': default_warn_args,
|
||||||
'2': default_warn_args + [],
|
'2': default_warn_args + [],
|
||||||
'3': default_warn_args + []}
|
'3': default_warn_args + []}
|
||||||
|
|
||||||
def can_linker_accept_rsp(self):
|
def can_linker_accept_rsp(self) -> bool:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_pic_args(self):
|
def get_pic_args(self) -> typing.List[str]:
|
||||||
# PIC support is not enabled by default for CCRX,
|
# PIC support is not enabled by default for CCRX,
|
||||||
# if users want to use it, they need to add the required arguments explicitly
|
# if users want to use it, they need to add the required arguments explicitly
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def get_buildtype_args(self, buildtype):
|
def get_buildtype_args(self, buildtype: str) -> typing.List[str]:
|
||||||
return ccrx_buildtype_args[buildtype]
|
return ccrx_buildtype_args[buildtype]
|
||||||
|
|
||||||
def get_buildtype_linker_args(self, buildtype):
|
def get_buildtype_linker_args(self, buildtype: str) -> typing.List[str]:
|
||||||
return ccrx_buildtype_linker_args[buildtype]
|
return ccrx_buildtype_linker_args[buildtype]
|
||||||
|
|
||||||
# Override CCompiler.get_std_shared_lib_link_args
|
# Override CCompiler.get_std_shared_lib_link_args
|
||||||
def get_std_shared_lib_link_args(self):
|
def get_std_shared_lib_link_args(self) -> typing.List[str]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def get_pch_suffix(self):
|
def get_pch_suffix(self) -> str:
|
||||||
return 'pch'
|
return 'pch'
|
||||||
|
|
||||||
def get_pch_use_args(self, pch_dir, header):
|
def get_pch_use_args(self, pch_dir: str, header: str) -> typing.List[str]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
# Override CCompiler.get_dependency_gen_args
|
# Override CCompiler.get_dependency_gen_args
|
||||||
def get_dependency_gen_args(self, outtarget, outfile):
|
def get_dependency_gen_args(self, outtarget: str, outfile: str) -> typing.List[str]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
# Override CCompiler.build_rpath_args
|
# Override CCompiler.build_rpath_args
|
||||||
def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath):
|
def build_rpath_args(self, build_dir: str, from_dir: str, rpath_paths: str, build_rpath: str, install_rpath: str) -> typing.List[str]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def thread_flags(self, env):
|
def thread_flags(self, env: 'Environment') -> typing.List[str]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def thread_link_flags(self, env):
|
def thread_link_flags(self, env: 'Environment') -> typing.List[str]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def get_linker_exelist(self):
|
def get_linker_exelist(self) -> typing.List[str]:
|
||||||
return [self.linker_exe]
|
return [self.linker_exe]
|
||||||
|
|
||||||
def get_linker_lib_prefix(self):
|
def get_linker_lib_prefix(self) -> str:
|
||||||
return '-lib='
|
return '-lib='
|
||||||
|
|
||||||
def get_coverage_args(self):
|
def get_coverage_args(self) -> typing.List[str]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def get_coverage_link_args(self):
|
def get_coverage_link_args(self) -> typing.List[str]:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def get_optimization_args(self, optimization_level):
|
def get_optimization_args(self, optimization_level: str) -> typing.List[str]:
|
||||||
return ccrx_optimization_args[optimization_level]
|
return ccrx_optimization_args[optimization_level]
|
||||||
|
|
||||||
def get_debug_args(self, is_debug):
|
def get_debug_args(self, is_debug: bool) -> typing.List[str]:
|
||||||
return ccrx_debug_args[is_debug]
|
return ccrx_debug_args[is_debug]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def unix_args_to_native(cls, args):
|
def unix_args_to_native(cls, args: typing.List[str]) -> typing.List[str]:
|
||||||
result = []
|
result = []
|
||||||
for i in args:
|
for i in args:
|
||||||
if i.startswith('-D'):
|
if i.startswith('-D'):
|
||||||
|
@ -140,7 +151,7 @@ class CcrxCompiler:
|
||||||
result.append(i)
|
result.append(i)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def compute_parameters_with_absolute_paths(self, parameter_list, build_dir):
|
def compute_parameters_with_absolute_paths(self, parameter_list: typing.List[str], build_dir: str) -> typing.List[str]:
|
||||||
for idx, i in enumerate(parameter_list):
|
for idx, i in enumerate(parameter_list):
|
||||||
if i[:9] == '-include=':
|
if i[:9] == '-include=':
|
||||||
parameter_list[idx] = i[:9] + os.path.normpath(os.path.join(build_dir, i[9:]))
|
parameter_list[idx] = i[:9] + os.path.normpath(os.path.join(build_dir, i[9:]))
|
||||||
|
|
Loading…
Reference in New Issue