diff --git a/methods.py b/methods.py index df7ca5a59fc..04541c72ad2 100644 --- a/methods.py +++ b/methods.py @@ -807,7 +807,20 @@ def get_compiler_version(env): if env.msvc and not using_clang(env): try: - args = [env["VSWHERE"], "-latest", "-products", "*", "-requires", "Microsoft.Component.MSBuild", "-utf8"] + # FIXME: `-latest` works for most cases, but there are edge-cases where this would + # benefit from a more nuanced search. + # https://github.com/godotengine/godot/pull/91069#issuecomment-2358956731 + # https://github.com/godotengine/godot/pull/91069#issuecomment-2380836341 + args = [ + env["VSWHERE"], + "-latest", + "-prerelease", + "-products", + "*", + "-requires", + "Microsoft.Component.MSBuild", + "-utf8", + ] version = subprocess.check_output(args, encoding="utf-8").strip() for line in version.splitlines(): split = line.split(":", 1) @@ -816,6 +829,8 @@ def get_compiler_version(env): ret["major"] = int(sem_ver[0]) ret["minor"] = int(sem_ver[1]) ret["patch"] = int(sem_ver[2]) + # Could potentially add section for determining preview version, but + # that can wait until metadata is actually used for something. if split[0] == "catalog_buildVersion": ret["metadata1"] = split[1] except (subprocess.CalledProcessError, OSError):