aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2021-03-02 13:31:59 -0500
committerXavier Claessens <xclaesse@gmail.com>2021-03-03 08:05:00 -0500
commitc8abede4037159176e07b45c3250d17acba699bb (patch)
tree36244685f9dd18efbae39500dc5fde7f9d0cca71
parentb7bcdb7839f7c2ac53f540235ec44c6ba8e344d7 (diff)
downloadmeson-c8abede4037159176e07b45c3250d17acba699bb.zip
meson-c8abede4037159176e07b45c3250d17acba699bb.tar.gz
meson-c8abede4037159176e07b45c3250d17acba699bb.tar.bz2
Windows Subsystem for Linux can run .exe without mono interpreter
Fixes: #8445
-rw-r--r--mesonbuild/backend/backends.py2
-rw-r--r--mesonbuild/mesonlib/universal.py3
2 files changed, 4 insertions, 1 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 9ac02d0..b663736 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -443,7 +443,7 @@ class Backend:
else:
if exe_cmd[0].endswith('.jar'):
exe_cmd = ['java', '-jar'] + exe_cmd
- elif exe_cmd[0].endswith('.exe') and not (mesonlib.is_windows() or mesonlib.is_cygwin()):
+ elif exe_cmd[0].endswith('.exe') and not (mesonlib.is_windows() or mesonlib.is_cygwin() or mesonlib.is_wsl()):
exe_cmd = ['mono'] + exe_cmd
exe_wrapper = None
diff --git a/mesonbuild/mesonlib/universal.py b/mesonbuild/mesonlib/universal.py
index 1b5b86c..4f1b6e8 100644
--- a/mesonbuild/mesonlib/universal.py
+++ b/mesonbuild/mesonlib/universal.py
@@ -107,6 +107,7 @@ __all__ = [
'is_qnx',
'is_sunos',
'is_windows',
+ 'is_wsl',
'iter_regexin_iter',
'join_args',
'listify',
@@ -597,6 +598,8 @@ def is_windows() -> bool:
platname = platform.system().lower()
return platname == 'windows'
+def is_wsl() -> bool:
+ return is_linux() and 'microsoft' in platform.version().lower()
def is_cygwin() -> bool:
return sys.platform == 'cygwin'