diff --git a/platform/windows/detect.py b/platform/windows/detect.py index 92b7a09278b..a1942fa2c15 100644 --- a/platform/windows/detect.py +++ b/platform/windows/detect.py @@ -20,7 +20,7 @@ def get_name(): return "Windows" -def try_cmd(test, prefix, arch): +def try_cmd(test, prefix, arch, check_clang=False): archs = ["x86_64", "x86_32", "arm64", "arm32"] if arch: archs = [arch] @@ -33,8 +33,10 @@ def try_cmd(test, prefix, arch): stderr=subprocess.PIPE, stdout=subprocess.PIPE, ) - out.communicate() + outs, errs = out.communicate() if out.returncode == 0: + if check_clang and not outs.startswith(b"clang"): + return False return True except Exception: pass @@ -641,6 +643,10 @@ def configure_mingw(env: "SConsEnvironment"): if env["use_llvm"] and not try_cmd("clang --version", env["mingw_prefix"], env["arch"]): env["use_llvm"] = False + if not env["use_llvm"] and try_cmd("gcc --version", env["mingw_prefix"], env["arch"], True): + print("Detected GCC to be a wrapper for Clang.") + env["use_llvm"] = True + # TODO: Re-evaluate the need for this / streamline with common config. if env["target"] == "template_release": if env["arch"] != "arm64":