Updated boost discovery to handle version >= 1.65 for MSVC
@@ -63,6 +63,7 @@ from .base import (DependencyException, ExternalDependency)
# Win / Cygwin: libboost_<module>.dll.a (location = /usr/lib)
# libboost_<module>.a
# cygboost_<module>_1_64.dll (location = /usr/bin)
+# Win / VS: boost_<module>-vc<ver>-mt[-gd]-<arch>-1_67.dll (location = C:/local/boost_1_67_0)
# Mac / homebrew: libboost_<module>.dylib + libboost_<module>-mt.dylib (location = /usr/local/lib)
# Mac / macports: libboost_<module>.dylib + libboost_<module>-mt.dylib (location = /opt/local/lib)
#
@@ -269,7 +270,6 @@ class BoostDependency(ExternalDependency):
def detect_lib_modules(self):
self.lib_modules = {}
-
# 1. Try to find modules using compiler.find_library( )
if self.find_libraries_with_abi_tags(self.abi_tags()):
pass
@@ -328,8 +328,22 @@ class BoostDependency(ExternalDependency):
def debug_tag(self):
return '-gd' if self.is_debug else ''
+ def arch_tag(self):
+ # currently only applies to windows msvc installed binaries
+ if self.env.detect_cpp_compiler(self.want_cross).get_id() != 'msvc':
+ return ''
+ # pre-compiled binaries only added arch tag for versions > 1.64
+ if float(self.version) < 1.65:
+ return ''
+ arch = detect_cpu_family(self.env.coredata.compilers)
+ if arch == 'x86':
+ return '-x32'
+ elif arch == 'x86_64':
+ return '-x64'
+ return ''
+
def versioned_abi_tag(self):
- return self.compiler_tag() + self.threading_tag() + self.debug_tag() + self.version_tag()
+ return self.compiler_tag() + self.threading_tag() + self.debug_tag() + self.arch_tag() + self.version_tag()
# FIXME - how to handle different distributions, e.g. for Mac? Currently we handle homebrew and macports, but not fink.
def abi_tags(self):
