diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2017-07-20 18:00:15 +0530 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-07-23 02:12:00 +0300 |
commit | de2d59cc27777562e55091633331aa478a877afd (patch) | |
tree | a4a2a593e86076ddfcc213ee9fcfe14447a4e0b6 /mesonbuild/compilers/c.py | |
parent | b3d048e93a55feaedadb1efae72de0b8871eefab (diff) | |
download | meson-de2d59cc27777562e55091633331aa478a877afd.zip meson-de2d59cc27777562e55091633331aa478a877afd.tar.gz meson-de2d59cc27777562e55091633331aa478a877afd.tar.bz2 |
find_library: Ignore libs on MSVC properly
In addition to filtering libs out while generating the command-line, we
must also filter them out in find_library() otherwise these libs will be
detected as "found" on Windows with MSVC.
Closes https://github.com/mesonbuild/meson/issues/1509
Diffstat (limited to 'mesonbuild/compilers/c.py')
-rw-r--r-- | mesonbuild/compilers/c.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py index d93c7cc..5de39d4 100644 --- a/mesonbuild/compilers/c.py +++ b/mesonbuild/compilers/c.py @@ -676,11 +676,11 @@ class CCompiler(Compiler): raise RuntimeError('BUG: {!r} check failed unexpectedly'.format(n)) def find_library(self, libname, env, extra_dirs): + # These libraries are either built-in or invalid + if libname in self.ignore_libs: + return [] # First try if we can just add the library as -l. - code = '''int main(int argc, char **argv) { - return 0; -} - ''' + code = 'int main(int argc, char **argv) { return 0; }' if extra_dirs and isinstance(extra_dirs, str): extra_dirs = [extra_dirs] # Gcc + co seem to prefer builtin lib dirs to -L dirs. @@ -811,6 +811,7 @@ class IntelCCompiler(IntelCompiler, CCompiler): class VisualStudioCCompiler(CCompiler): std_warn_args = ['/W3'] std_opt_args = ['/O2'] + ignore_libs = ('m', 'c', 'pthread') def __init__(self, exelist, version, is_cross, exe_wrap, is_64): CCompiler.__init__(self, exelist, version, is_cross, exe_wrap) @@ -941,7 +942,7 @@ class VisualStudioCCompiler(CCompiler): # Translate GNU-style -lfoo library name to the import library elif i.startswith('-l'): name = i[2:] - if name in ('m', 'c', 'pthread'): + if name in cls.ignore_libs: # With MSVC, these are provided by the C runtime which is # linked in by default continue |