MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / resolve_versions

Function resolve_versions

Tools/Support/PortableMSVCDownloader.py:111–147  ·  view source on GitHub ↗
(channel_manifest, packages, requested_msvc, requested_sdk)

Source from the content-addressed store, hash-verified

109
110
111def resolve_versions(channel_manifest, packages, requested_msvc, requested_sdk):
112 msvc_versions = {}
113 sdk_versions = {}
114 for package_id in packages:
115 if package_id.startswith("microsoft.visualstudio.component.vc.") and package_id.endswith(".x86.x64"):
116 parts = package_id.split(".")
117 version_key = ".".join(parts[4:6])
118 if version_key and version_key[0].isdigit():
119 msvc_versions[version_key] = package_id
120 if package_id.startswith("microsoft.visualstudio.component.windows10sdk.") or package_id.startswith(
121 "microsoft.visualstudio.component.windows11sdk."
122 ):
123 version_key = package_id.split(".")[-1]
124 if version_key.isdigit():
125 sdk_versions[version_key] = package_id
126
127 if requested_msvc:
128 if requested_msvc not in msvc_versions:
129 raise RuntimeError(f"Unknown MSVC version: {requested_msvc}")
130 msvc_package_id = msvc_versions[requested_msvc]
131 else:
132 msvc_package_id = msvc_versions[max(msvc_versions)]
133
134 if requested_sdk:
135 if requested_sdk not in sdk_versions:
136 raise RuntimeError(f"Unknown Windows SDK version: {requested_sdk}")
137 sdk_package_id = sdk_versions[requested_sdk]
138 else:
139 sdk_package_id = sdk_versions[max(sdk_versions)]
140
141 msvc_version = ".".join(msvc_package_id.split(".")[4:-2])
142 sdk_version = sdk_package_id.split(".")[-1]
143 build_tools = first(
144 channel_manifest["channelItems"], lambda item: item["id"] == "Microsoft.VisualStudio.Product.BuildTools"
145 )
146 resource = first(build_tools["localizedResources"], lambda item: item["language"] == "en-us")
147 return msvc_version, sdk_version, msvc_package_id, sdk_package_id, resource["license"]
148
149
150def extract_msvc(packages, cache_dir: Path, destination: Path, msvc_version: str):

Callers 1

mainFunction · 0.85

Calls 2

firstFunction · 0.85
joinMethod · 0.45

Tested by

no test coverage detected