aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies.py
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2016-09-25 11:13:32 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2016-09-27 00:27:38 +0530
commita0551d7d6ec3f7c6aa85edbcb00ae79f4a97865f (patch)
tree1dcaf852210cc61e31ed506f191f0c3e07b6747c /mesonbuild/dependencies.py
parentc9a7422cc1389c1ec51df34d8f96b83aeaf8b509 (diff)
downloadmeson-a0551d7d6ec3f7c6aa85edbcb00ae79f4a97865f.zip
meson-a0551d7d6ec3f7c6aa85edbcb00ae79f4a97865f.tar.gz
meson-a0551d7d6ec3f7c6aa85edbcb00ae79f4a97865f.tar.bz2
dependencies/boost: Fix 32-bit vs 64-bit on Windows
Fixes https://github.com/mesonbuild/meson/issues/526 Also removes useless and incorrect mesonlib.is_32bit() function. We cannot trust that the architecture that Python is built for is the same as the one we're targetting.
Diffstat (limited to 'mesonbuild/dependencies.py')
-rw-r--r--mesonbuild/dependencies.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/mesonbuild/dependencies.py b/mesonbuild/dependencies.py
index f32e7ff..1b9e6f4 100644
--- a/mesonbuild/dependencies.py
+++ b/mesonbuild/dependencies.py
@@ -25,6 +25,7 @@ import sysconfig
from . mesonlib import MesonException
from . import mlog
from . import mesonlib
+from .environment import detect_cpu_family
class DependencyException(MesonException):
def __init__(self, *args, **kwargs):
@@ -582,11 +583,21 @@ class BoostDependency(Dependency):
return self.detect_lib_modules_nix()
def detect_lib_modules_win(self):
- if mesonlib.is_32bit():
+ arch = detect_cpu_family(self.environment.coredata.compilers)
+ # Guess the libdir
+ if arch == 'x86':
gl = 'lib32*'
- else:
+ elif arch == 'x86_64':
gl = 'lib64*'
- libdir = glob.glob(os.path.join(self.boost_root, gl))
+ else:
+ # Does anyone do Boost cross-compiling to other archs on Windows?
+ gl = None
+ # See if the libdir is valid
+ if gl:
+ libdir = glob.glob(os.path.join(self.boost_root, gl))
+ else:
+ libdir = []
+ # Can't find libdir, bail
if len(libdir) == 0:
return
libdir = libdir[0]