aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/environment.py5
-rw-r--r--mesonbuild/mesonmain.py10
2 files changed, 15 insertions, 0 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index 4bcffbd..2522892 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -240,6 +240,11 @@ def detect_system():
return 'cygwin'
return system
+def detect_msys2_arch():
+ if 'MSYSTEM_CARCH' in os.environ:
+ return os.environ['MSYSTEM_CARCH']
+ return None
+
def search_version(text):
# Usually of the type 4.1.4 but compiler output may contain
# stuff like this:
diff --git a/mesonbuild/mesonmain.py b/mesonbuild/mesonmain.py
index c03ef9b..67d5a6c 100644
--- a/mesonbuild/mesonmain.py
+++ b/mesonbuild/mesonmain.py
@@ -23,6 +23,7 @@ from . import build
from . import mconf, mintro, mtest, rewriter, minit
from . import mlog, coredata
from .mesonlib import MesonException
+from .environment import detect_msys2_arch
from .wrap import WrapMode, wraptool
default_warning = '1'
@@ -287,6 +288,15 @@ def run(original_args, mainfile):
print('You have python %s.' % sys.version)
print('Please update your environment')
return 1
+ # https://github.com/mesonbuild/meson/issues/3653
+ if sys.platform.lower() == 'msys':
+ mlog.error('This python3 seems to be msys/python on MSYS2 Windows, which is known to have path semantics incompatible with Meson')
+ msys2_arch = detect_msys2_arch()
+ if msys2_arch:
+ mlog.error('Please install and use mingw-w64-i686-python3 and/or mingw-w64-x86_64-python3 with Pacman')
+ else:
+ mlog.error('Please download and use Python from www.python.org')
+ return 2
# Set the meson command that will be used to run scripts and so on
set_meson_command(mainfile)
args = original_args[:]