aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Kingston <derek.kingston@gmail.com>2018-07-31 13:03:56 -0400
committerJussi Pakkanen <jpakkane@gmail.com>2018-07-31 20:03:56 +0300
commit448b93fbe57bff6f2c4708b482ec352c2ed37793 (patch)
treee4a854678b956cc09e0e9b20fff7198d4601eb8f
parente7eb387da882a564dd872fb5346312fa7ff56ce7 (diff)
downloadmeson-448b93fbe57bff6f2c4708b482ec352c2ed37793.zip
meson-448b93fbe57bff6f2c4708b482ec352c2ed37793.tar.gz
meson-448b93fbe57bff6f2c4708b482ec352c2ed37793.tar.bz2
Updated boost discovery to handle version >= 1.65 for MSVC (#3961)
-rw-r--r--mesonbuild/dependencies/boost.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
index 59d8070..7acde2d 100644
--- a/mesonbuild/dependencies/boost.py
+++ b/mesonbuild/dependencies/boost.py
@@ -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):