diff options
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r-- | mesonbuild/compilers/compilers.py | 9 | ||||
-rw-r--r-- | mesonbuild/compilers/mixins/clang.py | 6 | ||||
-rw-r--r-- | mesonbuild/compilers/mixins/gnu.py | 14 | ||||
-rw-r--r-- | mesonbuild/compilers/mixins/visualstudio.py | 3 |
4 files changed, 4 insertions, 28 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 2acd429..ec255a8 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -874,11 +874,10 @@ class Compiler(metaclass=abc.ABCMeta): return [] def get_win_subsystem_args(self, value: str) -> T.List[str]: - # This returns an empty array rather than throws to simplify the code. - # Otherwise we would have to check whenever calling this function whether - # the target is for Windows. There are also many cases where this is - # a meaningless choice, such as with Jave or C#. - return [] + # By default the dynamic linker is going to return an empty + # array in case it either doesn't support Windows subsystems + # or does not target Windows + return self.linker.get_win_subsystem_args(value) def has_func_attribute(self, name: str, env: 'Environment') -> T.Tuple[bool, bool]: raise EnvironmentException( diff --git a/mesonbuild/compilers/mixins/clang.py b/mesonbuild/compilers/mixins/clang.py index ab2d066..4f2a930 100644 --- a/mesonbuild/compilers/mixins/clang.py +++ b/mesonbuild/compilers/mixins/clang.py @@ -109,12 +109,6 @@ class ClangCompiler(GnuLikeCompiler): # Shouldn't work, but it'll be checked explicitly in the OpenMP dependency. return [] - def get_win_subsystem_args(self, value: str) -> T.List[str]: - if self.info.is_windows() and not self.info.is_cygwin() and isinstance(self.linker, ClangClDynamicLinker): - return [f'-Wl,/subsystem:{value}'] - - return super().get_win_subsystem_args(value) - @classmethod def use_linker_args(cls, linker: str) -> T.List[str]: # Clang additionally can use a linker specified as a path, which GCC diff --git a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py index 4024cbe..bb41a8a 100644 --- a/mesonbuild/compilers/mixins/gnu.py +++ b/mesonbuild/compilers/mixins/gnu.py @@ -219,20 +219,6 @@ class GnuLikeCompiler(Compiler, metaclass=abc.ABCMeta): return ['-mwindows' if value else '-mconsole'] return [] - def get_win_subsystem_args(self, value: str) -> T.List[str]: - args = [] - if self.info.is_windows() or self.info.is_cygwin(): - if 'windows' in value: - args = ['-Wl,--subsystem,windows'] - elif 'console' in value: - args = ['-Wl,--subsystem,console'] - else: - raise mesonlib.MesonException('Only "windows" and "console" are supported for win_subsystem with MinGW, not "{}".'.format(value)) - if ',' in value: - args[-1] = args[-1] + ':' + value.split(',')[1] - return args - - def compute_parameters_with_absolute_paths(self, parameter_list: T.List[str], build_dir: str) -> T.List[str]: for idx, i in enumerate(parameter_list): if i[:2] == '-I' or i[:2] == '-L': diff --git a/mesonbuild/compilers/mixins/visualstudio.py b/mesonbuild/compilers/mixins/visualstudio.py index 3e8b8e3..6e9a4d7 100644 --- a/mesonbuild/compilers/mixins/visualstudio.py +++ b/mesonbuild/compilers/mixins/visualstudio.py @@ -205,9 +205,6 @@ class VisualStudioLikeCompiler(Compiler, metaclass=abc.ABCMeta): else: return ['/SUBSYSTEM:CONSOLE'] - def get_win_subsystem_args(self, value: str) -> T.List[str]: - return ['/SUBSYSTEM:' + value.upper()] - def get_pic_args(self) -> T.List[str]: return [] # PIC is handled by the loader on Windows |