Boost win detection tuning.

pull/339/head
Jussi Pakkanen 9 years ago
parent 489ca238c5
commit d92e6c4595
  1. 18
      compilers.py
  2. 5
      dependencies.py
  3. 1
      ninjabackend.py

@ -177,6 +177,9 @@ class Compiler():
def has_function(self, *args, **kwargs): def has_function(self, *args, **kwargs):
raise EnvironmentException('Language %s does not support function checks.' % self.language) raise EnvironmentException('Language %s does not support function checks.' % self.language)
def unixtype_flags_to_native(self, args):
return args
class CCompiler(Compiler): class CCompiler(Compiler):
def __init__(self, exelist, version, is_cross, exe_wrapper=None): def __init__(self, exelist, version, is_cross, exe_wrapper=None):
super().__init__(exelist, version) super().__init__(exelist, version)
@ -1055,7 +1058,6 @@ class VisualStudioCCompiler(CCompiler):
vs2010_always_args = ['/nologo', '/showIncludes'] vs2010_always_args = ['/nologo', '/showIncludes']
vs2013_always_args = ['/nologo', '/showIncludes', '/FS'] vs2013_always_args = ['/nologo', '/showIncludes', '/FS']
def __init__(self, exelist, version, is_cross, exe_wrap): def __init__(self, exelist, version, is_cross, exe_wrap):
CCompiler.__init__(self, exelist, version, is_cross, exe_wrap) CCompiler.__init__(self, exelist, version, is_cross, exe_wrap)
self.id = 'msvc' self.id = 'msvc'
@ -1157,6 +1159,14 @@ class VisualStudioCCompiler(CCompiler):
def get_option_link_args(self, options): def get_option_link_args(self, options):
return options['c_winlibs'].value return options['c_winlibs'].value
def unixtype_flags_to_native(self, args):
result = []
for i in args:
if i.startswith('-L'):
i = '/LIBPATH:' + i[2:]
result.append(i)
return result
class VisualStudioCPPCompiler(VisualStudioCCompiler): class VisualStudioCPPCompiler(VisualStudioCCompiler):
def __init__(self, exelist, version, is_cross, exe_wrap): def __init__(self, exelist, version, is_cross, exe_wrap):
VisualStudioCCompiler.__init__(self, exelist, version, is_cross, exe_wrap) VisualStudioCCompiler.__init__(self, exelist, version, is_cross, exe_wrap)
@ -1768,6 +1778,9 @@ class VisualStudioLinker():
def get_option_link_args(self, options): def get_option_link_args(self, options):
return [] return []
def unixtype_flags_to_native(self, args):
return args
class ArLinker(): class ArLinker():
std_args = ['csr'] std_args = ['csr']
@ -1804,3 +1817,6 @@ class ArLinker():
def get_option_link_args(self, options): def get_option_link_args(self, options):
return [] return []
def unixtype_flags_to_native(self, args):
return args

@ -539,10 +539,7 @@ class BoostDependency(Dependency):
def get_win_link_args(self): def get_win_link_args(self):
args = [] args = []
if self.boost_root: if self.boost_root:
# FIXME, these are in gcc format, not msvc. args.append('-L' + self.libdir)
# On the other hand, so are the args that
# pkg-config returns.
args.append('/LIBPATH:' + self.libdir)
for module in self.requested_modules: for module in self.requested_modules:
module = BoostDependency.name2lib.get(module, module) module = BoostDependency.name2lib.get(module, module)
if module in self.lib_modules_mt: if module in self.lib_modules_mt:

@ -1675,6 +1675,7 @@ rule FORTRAN_DEP_HACK
if self.environment.coredata.get_builtin_option('coverage'): if self.environment.coredata.get_builtin_option('coverage'):
commands += linker.get_coverage_link_args() commands += linker.get_coverage_link_args()
commands += extra_args commands += extra_args
commands = linker.unixtype_flags_to_native(commands)
dep_targets = [self.get_dependency_filename(t) for t in dependencies] dep_targets = [self.get_dependency_filename(t) for t in dependencies]
dep_targets += [os.path.join(self.environment.source_dir, dep_targets += [os.path.join(self.environment.source_dir,
target.subdir, t) for t in target.link_depends] target.subdir, t) for t in target.link_depends]

Loading…
Cancel
Save