aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/compilers/compilers.py112
1 files changed, 59 insertions, 53 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index dda0f38..286406d 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -92,12 +92,12 @@ clib_langs = ('objcpp', 'cpp', 'objc', 'c', 'nasm', 'fortran')
clink_langs = ('d', 'cuda') + clib_langs
SUFFIX_TO_LANG = dict(itertools.chain(*(
- [(suffix, lang) for suffix in v] for lang, v in lang_suffixes.items()))) # type: T.Dict[str, str]
+ [(suffix, lang) for suffix in v] for lang, v in lang_suffixes.items())))
# Languages that should use LDFLAGS arguments when linking.
-LANGUAGES_USING_LDFLAGS = {'objcpp', 'cpp', 'objc', 'c', 'fortran', 'd', 'cuda'} # type: T.Set[str]
+LANGUAGES_USING_LDFLAGS = {'objcpp', 'cpp', 'objc', 'c', 'fortran', 'd', 'cuda'}
# Languages that should use CPPFLAGS arguments when linking.
-LANGUAGES_USING_CPPFLAGS = {'c', 'cpp', 'objc', 'objcpp'} # type: T.Set[str]
+LANGUAGES_USING_CPPFLAGS = {'c', 'cpp', 'objc', 'objcpp'}
soregex = re.compile(r'.*\.so(\.[0-9]+)?(\.[0-9]+)?(\.[0-9]+)?$')
# Environment variables that each lang uses.
@@ -190,99 +190,105 @@ class CompileCheckMode(enum.Enum):
LINK = 'link'
-cuda_buildtype_args = {'plain': [],
+cuda_buildtype_args: T.Dict[str, T.List[str]] = {'plain': [],
'debug': ['-g', '-G'],
'debugoptimized': ['-g', '-lineinfo'],
'release': [],
'minsize': [],
'custom': [],
- } # type: T.Dict[str, T.List[str]]
-java_buildtype_args = {'plain': [],
+ }
+java_buildtype_args: T.Dict[str, T.List[str]] = {'plain': [],
'debug': ['-g'],
'debugoptimized': ['-g'],
'release': [],
'minsize': [],
'custom': [],
- } # type: T.Dict[str, T.List[str]]
+ }
-rust_buildtype_args = {'plain': [],
+rust_buildtype_args: T.Dict[str, T.List[str]] = {'plain': [],
'debug': [],
'debugoptimized': [],
'release': [],
'minsize': [],
'custom': [],
- } # type: T.Dict[str, T.List[str]]
+ }
-d_gdc_buildtype_args = {'plain': [],
+d_gdc_buildtype_args: T.Dict[str, T.List[str]] = {'plain': [],
'debug': [],
'debugoptimized': ['-finline-functions'],
'release': ['-finline-functions'],
'minsize': [],
'custom': [],
- } # type: T.Dict[str, T.List[str]]
+ }
-d_ldc_buildtype_args = {'plain': [],
+d_ldc_buildtype_args: T.Dict[str, T.List[str]] = {'plain': [],
'debug': [],
'debugoptimized': ['-enable-inlining', '-Hkeep-all-bodies'],
'release': ['-enable-inlining', '-Hkeep-all-bodies'],
'minsize': [],
'custom': [],
- } # type: T.Dict[str, T.List[str]]
+ }
-d_dmd_buildtype_args = {'plain': [],
+d_dmd_buildtype_args: T.Dict[str, T.List[str]] = {'plain': [],
'debug': [],
'debugoptimized': ['-inline'],
'release': ['-inline'],
'minsize': [],
'custom': [],
- } # type: T.Dict[str, T.List[str]]
+ }
-mono_buildtype_args = {'plain': [],
+mono_buildtype_args: T.Dict[str, T.List[str]] = {'plain': [],
'debug': [],
'debugoptimized': ['-optimize+'],
'release': ['-optimize+'],
'minsize': [],
'custom': [],
- } # type: T.Dict[str, T.List[str]]
+ }
-swift_buildtype_args = {'plain': [],
+swift_buildtype_args: T.Dict[str, T.List[str]] = {'plain': [],
'debug': [],
'debugoptimized': [],
'release': [],
'minsize': [],
'custom': [],
- } # type: T.Dict[str, T.List[str]]
+ }
gnu_winlibs = ['-lkernel32', '-luser32', '-lgdi32', '-lwinspool', '-lshell32',
- '-lole32', '-loleaut32', '-luuid', '-lcomdlg32', '-ladvapi32'] # type: T.List[str]
+ '-lole32', '-loleaut32', '-luuid', '-lcomdlg32', '-ladvapi32']
msvc_winlibs = ['kernel32.lib', 'user32.lib', 'gdi32.lib',
'winspool.lib', 'shell32.lib', 'ole32.lib', 'oleaut32.lib',
- 'uuid.lib', 'comdlg32.lib', 'advapi32.lib'] # type: T.List[str]
-
-clike_optimization_args = {'plain': [],
- '0': [],
- 'g': [],
- '1': ['-O1'],
- '2': ['-O2'],
- '3': ['-O3'],
- 's': ['-Os'],
- } # type: T.Dict[str, T.List[str]]
-
-cuda_optimization_args = {'plain': [],
- '0': [],
- 'g': ['-O0'],
- '1': ['-O1'],
- '2': ['-O2'],
- '3': ['-O3'],
- 's': ['-O3']
- } # type: T.Dict[str, T.List[str]]
-
-cuda_debug_args = {False: [],
- True: ['-g']} # type: T.Dict[bool, T.List[str]]
-
-clike_debug_args = {False: [],
- True: ['-g']} # type: T.Dict[bool, T.List[str]]
+ 'uuid.lib', 'comdlg32.lib', 'advapi32.lib']
+
+clike_optimization_args: T.Dict[str, T.List[str]] = {
+ 'plain': [],
+ '0': [],
+ 'g': [],
+ '1': ['-O1'],
+ '2': ['-O2'],
+ '3': ['-O3'],
+ 's': ['-Os'],
+}
+
+cuda_optimization_args: T.Dict[str, T.List[str]] = {
+ 'plain': [],
+ '0': [],
+ 'g': ['-O0'],
+ '1': ['-O1'],
+ '2': ['-O2'],
+ '3': ['-O3'],
+ 's': ['-O3']
+}
+
+cuda_debug_args: T.Dict[bool, T.List[str]] = {
+ False: [],
+ True: ['-g']
+}
+
+clike_debug_args: T.Dict[bool, T.List[str]] = {
+ False: [],
+ True: ['-g']
+}
base_options: 'KeyedOptionDictType' = {
OptionKey('b_pch'): coredata.UserBooleanOption('Use precompiled headers', True),
@@ -350,7 +356,7 @@ def are_asserts_disabled(options: KeyedOptionDictType) -> bool:
def get_base_compile_args(options: 'KeyedOptionDictType', compiler: 'Compiler') -> T.List[str]:
- args = [] # type T.List[str]
+ args: T.List[str] = []
try:
if options[OptionKey('b_lto')].value:
args.extend(compiler.get_lto_compile_args(
@@ -399,7 +405,7 @@ def get_base_compile_args(options: 'KeyedOptionDictType', compiler: 'Compiler')
def get_base_link_args(options: 'KeyedOptionDictType', linker: 'Compiler',
is_shared_module: bool, build_dir: str) -> T.List[str]:
- args = [] # type: T.List[str]
+ args: T.List[str] = []
try:
if options[OptionKey('b_lto')].value:
thinlto_cache_dir = None
@@ -499,12 +505,12 @@ class CompileResult(HoldableObject):
class Compiler(HoldableObject, metaclass=abc.ABCMeta):
# Libraries to ignore in find_library() since they are provided by the
# compiler or the C library. Currently only used for MSVC.
- ignore_libs = [] # type: T.List[str]
+ ignore_libs: T.List[str] = []
# Libraries that are internal compiler implementations, and must not be
# manually searched.
- internal_libs = [] # type: T.List[str]
+ internal_libs: T.List[str] = []
- LINKER_PREFIX = None # type: T.Union[None, str, T.List[str]]
+ LINKER_PREFIX: T.Union[None, str, T.List[str]] = None
INVOKES_LINKER = True
language: str
@@ -799,7 +805,7 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta):
def get_compiler_args_for_mode(self, mode: CompileCheckMode) -> T.List[str]:
# TODO: mode should really be an enum
- args = [] # type: T.List[str]
+ args: T.List[str] = []
args += self.get_always_args()
if mode is CompileCheckMode.COMPILE:
args += self.get_compile_only_args()
@@ -879,8 +885,8 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta):
# TODO: There's isn't really any reason for this to be a context manager
# Calculate the key
- textra_args = tuple(extra_args) if extra_args is not None else tuple() # type: T.Tuple[str, ...]
- key = (tuple(self.exelist), self.version, code, textra_args, mode) # type: coredata.CompilerCheckCacheKey
+ textra_args: T.Tuple[str, ...] = tuple(extra_args) if extra_args is not None else tuple()
+ key: coredata.CompilerCheckCacheKey = (tuple(self.exelist), self.version, code, textra_args, mode)
# Check if not cached, and generate, otherwise get from the cache
if key in cdata.compiler_check_cache: