|
39 | 39 | kits_root="SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots"
|
40 | 40 | kits_suffix=os.path.join("bin",ARCH)
|
41 | 41 |
|
42 |
| -WIN_SDK_KEYS=( |
| 42 | +WIN_SDK_KEYS=[ |
43 | 43 | RegKey(sdk_name="Windows Kit 10.0",key=kits_root,
|
44 | 44 | value_name="KitsRoot10",suffix=os.path.join("bin","10.0.16299.0",ARCH)),
|
45 | 45 |
|
|
69 | 69 |
|
70 | 70 | RegKey(sdk_name="Windows SDK 6.0A",key=sdks_root.format("6.0A\\WinSDK"),
|
71 | 71 | value_name="InstallationFolder",suffix=""),
|
72 |
| -) |
| 72 | +] |
73 | 73 |
|
74 | 74 | VS_KEYS= (
|
75 | 75 | RegKey(sdk_name="MSBuild 15",key=vs_root.format("15.0"),
|
@@ -145,6 +145,29 @@ def _update_xlat_devtools():
|
145 | 145 | elifDEVTOOLS=="Mono":
|
146 | 146 | DEVTOOLS="dotnet"
|
147 | 147 |
|
| 148 | +def_collect_installed_windows_kits_v10(winreg): |
| 149 | +"""Adds the installed Windows 10 kits to WIN_SDK_KEYS """ |
| 150 | +globalWIN_SDK_KEYS |
| 151 | +installed_kits= [] |
| 152 | + |
| 153 | +withwinreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,kits_root,0,winreg.KEY_READ)askey: |
| 154 | +i=0 |
| 155 | +whileTrue: |
| 156 | +try: |
| 157 | +installed_kits.append(winreg.EnumKey(key,i)) |
| 158 | +i+=1 |
| 159 | +exceptWindowsError: |
| 160 | +break |
| 161 | + |
| 162 | +defmake_reg_key(version): |
| 163 | +returnRegKey(sdk_name="Windows Kit 10.0",key=kits_root, |
| 164 | +value_name="KitsRoot10",suffix=os.path.join("bin",version,ARCH)) |
| 165 | + |
| 166 | +WIN_SDK_KEYS+= [make_reg_key(e)foreininstalled_kitsife.startswith('10.')] |
| 167 | + |
| 168 | +# Make sure this function won't be called again |
| 169 | +_collect_installed_windows_kits_v10= (lambda:None) |
| 170 | + |
148 | 171 | classBuildExtPythonnet(build_ext.build_ext):
|
149 | 172 | user_options=build_ext.build_ext.user_options+ [
|
150 | 173 | ('xplat',None,None)
|
@@ -367,6 +390,8 @@ def _find_msbuild_tool(self, tool="msbuild.exe", use_windows_sdk=False):
|
367 | 390 | exceptImportError:# PY3
|
368 | 391 | importwinreg
|
369 | 392 |
|
| 393 | +_collect_installed_windows_kits_v10(winreg) |
| 394 | + |
370 | 395 | keys_to_check=WIN_SDK_KEYSifuse_windows_sdkelseVS_KEYS
|
371 | 396 | hklm=winreg.HKEY_LOCAL_MACHINE
|
372 | 397 | forrkeyinkeys_to_check:
|
|