From 677b45e9e1406142f7aaec2f7d78c4c05d78b927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Thu, 17 Jun 2021 18:51:57 +0530 Subject: [PATCH] msys monkeypatch os system via sh exe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Алексей --- setup.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/setup.py b/setup.py index 693950923cc9da..5884345a33aa89 100644 --- a/setup.py +++ b/setup.py @@ -77,6 +77,17 @@ def get_platform(): return sys.platform +# On MSYS, os.system needs to be wrapped with sh.exe +# as otherwise all the io redirection will fail. +# Arguably, this could happen inside the real os.system +# rather than this monkey patch. +if sys.platform == "win32" and "MSYSTEM" in os.environ: + os_system = os.system + def msys_system(command): + command_in_sh = 'sh.exe -c "%s"' % command.replace("\\", "\\\\") + return os_system(command_in_sh) + os.system = msys_system + CROSS_COMPILING = ("_PYTHON_HOST_PLATFORM" in os.environ) HOST_PLATFORM = get_platform() MS_WINDOWS = (HOST_PLATFORM == 'win32')