aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers/compilers.py2
-rw-r--r--mesonbuild/compilers/mixins/clike.py8
-rw-r--r--mesonbuild/compilers/mixins/elbrus.py23
-rw-r--r--mesonbuild/compilers/mixins/gnu.py8
4 files changed, 23 insertions, 18 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 6e914a6..eebb6e6 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -937,7 +937,7 @@ class Compiler:
return ()
def get_program_dirs(self, *args, **kwargs):
- return ()
+ return []
def has_multi_arguments(self, args, env) -> Tuple[bool, bool]:
raise EnvironmentException(
diff --git a/mesonbuild/compilers/mixins/clike.py b/mesonbuild/compilers/mixins/clike.py
index b378252..e032402 100644
--- a/mesonbuild/compilers/mixins/clike.py
+++ b/mesonbuild/compilers/mixins/clike.py
@@ -35,6 +35,10 @@ from ... import mlog
from .. import compilers
from .visualstudio import VisualStudioLikeCompiler
+if typing.TYPE_CHECKING:
+ from ...environment import Environment
+
+
class CLikeCompiler:
"""Shared bits for the C and CPP Compilers."""
@@ -161,11 +165,11 @@ class CLikeCompiler:
def get_std_shared_lib_link_args(self):
return ['-shared']
- def get_compiler_dirs(self, env, name):
+ def get_compiler_dirs(self, env: 'Environment', name: str) -> typing.List[str]:
'''
Get dirs from the compiler, either `libraries:` or `programs:`
'''
- return ()
+ return []
@functools.lru_cache()
def get_library_dirs(self, env, elf_class = None):
diff --git a/mesonbuild/compilers/mixins/elbrus.py b/mesonbuild/compilers/mixins/elbrus.py
index a254a8b..eb7414c 100644
--- a/mesonbuild/compilers/mixins/elbrus.py
+++ b/mesonbuild/compilers/mixins/elbrus.py
@@ -15,15 +15,20 @@
"""Abstractions for the Elbrus family of compilers."""
import os
+import typing
from .gnu import GnuCompiler
from ...mesonlib import Popen_safe
+if typing.TYPE_CHECKING:
+ from ..compilers import CompilerType
+ from ...environment import Environment
+
class ElbrusCompiler(GnuCompiler):
# Elbrus compiler is nearly like GCC, but does not support
# PCH, LTO, sanitizers and color output as of version 1.21.x.
- def __init__(self, compiler_type, defines):
+ def __init__(self, compiler_type: 'CompilerType', defines: typing.Dict[str, str]):
GnuCompiler.__init__(self, compiler_type, defines)
self.id = 'lcc'
self.base_options = ['b_pgo', 'b_coverage',
@@ -32,28 +37,24 @@ class ElbrusCompiler(GnuCompiler):
# FIXME: use _build_wrapper to call this so that linker flags from the env
# get applied
- def get_library_dirs(self, env, elf_class = None):
+ def get_library_dirs(self, env: 'Environment', elf_class: typing.Optional[int] = None) -> typing.List[str]:
os_env = os.environ.copy()
os_env['LC_ALL'] = 'C'
stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=os_env)[1]
- paths = ()
for line in stdo.split('\n'):
if line.startswith('libraries:'):
# lcc does not include '=' in --print-search-dirs output.
libstr = line.split(' ', 1)[1]
- paths = (os.path.realpath(p) for p in libstr.split(':'))
- break
- return paths
+ return [os.path.realpath(p) for p in libstr.split(':')]
+ return []
- def get_program_dirs(self, env):
+ def get_program_dirs(self, env: 'Environment') -> typing.List[str]:
os_env = os.environ.copy()
os_env['LC_ALL'] = 'C'
stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=os_env)[1]
- paths = ()
for line in stdo.split('\n'):
if line.startswith('programs:'):
# lcc does not include '=' in --print-search-dirs output.
libstr = line.split(' ', 1)[1]
- paths = (os.path.realpath(p) for p in libstr.split(':'))
- break
- return paths \ No newline at end of file
+ return [os.path.realpath(p) for p in libstr.split(':')]
+ return []
diff --git a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py
index 92fa579..46f04c4 100644
--- a/mesonbuild/compilers/mixins/gnu.py
+++ b/mesonbuild/compilers/mixins/gnu.py
@@ -319,7 +319,7 @@ class GnuLikeCompiler(metaclass=abc.ABCMeta):
stdo = p.stdo
return stdo
- def _split_fetch_real_dirs(self, pathstr: str) -> typing.Tuple[str, ...]:
+ def _split_fetch_real_dirs(self, pathstr: str) -> typing.List[str]:
# We need to use the path separator used by the compiler for printing
# lists of paths ("gcc --print-search-dirs"). By default
# we assume it uses the platform native separator.
@@ -354,9 +354,9 @@ class GnuLikeCompiler(metaclass=abc.ABCMeta):
result.append(resolved)
except FileNotFoundError:
pass
- return tuple(result)
+ return result
- def get_compiler_dirs(self, env: 'Environment', name: str) -> typing.Tuple[str, ...]:
+ def get_compiler_dirs(self, env: 'Environment', name: str) -> typing.List[str]:
'''
Get dirs from the compiler, either `libraries:` or `programs:`
'''
@@ -364,7 +364,7 @@ class GnuLikeCompiler(metaclass=abc.ABCMeta):
for line in stdo.split('\n'):
if line.startswith(name + ':'):
return self._split_fetch_real_dirs(line.split('=', 1)[1])
- return ()
+ return []
class GnuCompiler(GnuLikeCompiler):