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