Generalize gnulike-targeting-windows checks.

Replace several checks against GCC_MINGW or (GCC_MINGW, GCC_CYGWIN) with
is_windows_compiler instead, so that clang and other gcc-like compilers
using MinGW work appropriately with vs_module_defs, c_winlibs, and
cpp_winlibs.

Fixes #4434.
pull/4454/head
Josh Gao 6 years ago committed by Jussi Pakkanen
parent d505a68e34
commit edda80cc75
  1. 4
      mesonbuild/compilers/c.py
  2. 4
      mesonbuild/compilers/compilers.py
  3. 4
      mesonbuild/compilers/cpp.py

@ -1179,7 +1179,7 @@ class GnuCCompiler(GnuCompiler, CCompiler):
['none', 'c89', 'c99', 'c11', ['none', 'c89', 'c99', 'c11',
'gnu89', 'gnu99', 'gnu11'], 'gnu89', 'gnu99', 'gnu11'],
'none')}) 'none')})
if self.compiler_type == CompilerType.GCC_MINGW: if self.compiler_type.is_windows_compiler:
opts.update({ opts.update({
'c_winlibs': coredata.UserArrayOption('c_winlibs', 'Standard Win libraries to link against', 'c_winlibs': coredata.UserArrayOption('c_winlibs', 'Standard Win libraries to link against',
gnu_winlibs), }) gnu_winlibs), })
@ -1193,7 +1193,7 @@ class GnuCCompiler(GnuCompiler, CCompiler):
return args return args
def get_option_link_args(self, options): def get_option_link_args(self, options):
if self.compiler_type == CompilerType.GCC_MINGW: if self.compiler_type.is_windows_compiler:
return options['c_winlibs'].value[:] return options['c_winlibs'].value[:]
return [] return []

@ -1482,13 +1482,13 @@ class GnuCompiler(GnuLikeCompiler):
raise RuntimeError('Module definitions file should be str') raise RuntimeError('Module definitions file should be str')
# On Windows targets, .def files may be specified on the linker command # On Windows targets, .def files may be specified on the linker command
# line like an object file. # line like an object file.
if self.compiler_type in (CompilerType.GCC_CYGWIN, CompilerType.GCC_MINGW): if self.compiler_type.is_windows_compiler:
return [defsfile] return [defsfile]
# For other targets, discard the .def file. # For other targets, discard the .def file.
return [] return []
def get_gui_app_args(self, value): def get_gui_app_args(self, value):
if self.compiler_type in (CompilerType.GCC_CYGWIN, CompilerType.GCC_MINGW) and value: if self.compiler_type.is_windows_compiler and value:
return ['-mwindows'] return ['-mwindows']
return [] return []

@ -202,7 +202,7 @@ class GnuCPPCompiler(GnuCompiler, CPPCompiler):
'cpp_debugstl': coredata.UserBooleanOption('cpp_debugstl', 'cpp_debugstl': coredata.UserBooleanOption('cpp_debugstl',
'STL debug mode', 'STL debug mode',
False)}) False)})
if self.compiler_type == CompilerType.GCC_MINGW: if self.compiler_type.is_windows_compiler:
opts.update({ opts.update({
'cpp_winlibs': coredata.UserArrayOption('cpp_winlibs', 'Standard Win libraries to link against', 'cpp_winlibs': coredata.UserArrayOption('cpp_winlibs', 'Standard Win libraries to link against',
gnu_winlibs), }) gnu_winlibs), })
@ -218,7 +218,7 @@ class GnuCPPCompiler(GnuCompiler, CPPCompiler):
return args return args
def get_option_link_args(self, options): def get_option_link_args(self, options):
if self.compiler_type == CompilerType.GCC_MINGW: if self.compiler_type.is_windows_compiler:
return options['cpp_winlibs'].value[:] return options['cpp_winlibs'].value[:]
return [] return []

Loading…
Cancel
Save