diff options
author | Derek Kingston <derek.kingston@gmail.com> | 2018-07-31 13:03:56 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-07-31 20:03:56 +0300 |
commit | 448b93fbe57bff6f2c4708b482ec352c2ed37793 (patch) | |
tree | e4a854678b956cc09e0e9b20fff7198d4601eb8f | |
parent | e7eb387da882a564dd872fb5346312fa7ff56ce7 (diff) | |
download | meson-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.py | 18 |
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): |