diff --git a/test cases/common/33 run program/check-mingw.py b/test cases/common/33 run program/check-mingw.py new file mode 100755 index 000000000..f10c28ba1 --- /dev/null +++ b/test cases/common/33 run program/check-mingw.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 + +import os, sys, re + +if 'MSYSTEM' in os.environ and os.environ['MSYSTEM'] != '': + print(os.environ['MSYSTEM']) +else: + match = re.search(r'[\\/](mingw32|mingw64|clang32|clang64|clangarm64|ucrt64)[\\/]', sys.executable, flags=re.IGNORECASE) + if match: + print(match.group(1).upper()) diff --git a/test cases/common/33 run program/meson.build b/test cases/common/33 run program/meson.build index 2257d93c7..1cd530523 100644 --- a/test cases/common/33 run program/meson.build +++ b/test cases/common/33 run program/meson.build @@ -1,6 +1,9 @@ project('run command', version : run_command('get-version.py', check : true).stdout().strip(), meson_version: '>=0.1.0') -if build_machine.system() == 'windows' +check_mingw = run_command('check-mingw.py', check : true).stdout().strip() +is_mingw = not (check_mingw == '' or check_mingw == 'MSYS') + +if build_machine.system() == 'windows' and not is_mingw c = run_command('cmd', '/c', 'echo', 'hello', check: false) else c = run_command('echo', 'hello', check: false) @@ -45,7 +48,7 @@ endif # We should be able to have files() in argument f = files('meson.build') -if build_machine.system() == 'windows' +if build_machine.system() == 'windows' and not is_mingw c = run_command('cmd', '/c', 'echo', f, check: false) else c = run_command('echo', f, check: false)