From a2733369ae81674948a4e965faf44cd47e0ac0ec Mon Sep 17 00:00:00 2001 From: Blue Date: Wed, 3 Apr 2019 00:22:01 +0200 Subject: [PATCH 1/2] List installed Win10 SDK's when looking for windows sdk tool --- setup.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 1b6f07ea6..f5690962a 100644 --- a/setup.py +++ b/setup.py @@ -39,7 +39,7 @@ kits_root = "SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots" kits_suffix = os.path.join("bin", ARCH) -WIN_SDK_KEYS = ( +WIN_SDK_KEYS = [ RegKey(sdk_name="Windows Kit 10.0", key=kits_root, value_name="KitsRoot10", suffix=os.path.join("bin", "10.0.16299.0", ARCH)), @@ -69,7 +69,7 @@ RegKey(sdk_name="Windows SDK 6.0A", key=sdks_root.format("6.0A\\WinSDK"), value_name="InstallationFolder", suffix=""), -) +] VS_KEYS = ( RegKey(sdk_name="MSBuild 15", key=vs_root.format("15.0"), @@ -145,6 +145,29 @@ def _update_xlat_devtools(): elif DEVTOOLS == "Mono": DEVTOOLS = "dotnet" +def _collect_installed_windows_kits_v10(winreg): + """Adds the installed Windows 10 kits to WIN_SDK_KEYS """ + global WIN_SDK_KEYS + installed_kits = [] + + with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, kits_root, 0, winreg.KEY_READ) as key: + i = 0 + while True: + try: + installed_kits.append(winreg.EnumKey(key, i)) + i += 1 + except WindowsError: + break + + def make_reg_key(version): + return RegKey(sdk_name="Windows Kit 10.0", key=kits_root, + value_name="KitsRoot10", suffix=os.path.join("bin", version, ARCH)) + + WIN_SDK_KEYS += [make_reg_key(e) for e in installed_kits if e.startswith('10.')] + + # Make sure this function won't be called again + _collect_installed_windows_kits_v10 = (lambda:None) + class BuildExtPythonnet(build_ext.build_ext): user_options = build_ext.build_ext.user_options + [ ('xplat', None, None) @@ -367,6 +390,8 @@ def _find_msbuild_tool(self, tool="msbuild.exe", use_windows_sdk=False): except ImportError: # PY3 import winreg + _collect_installed_windows_kits_v10(winreg) + keys_to_check = WIN_SDK_KEYS if use_windows_sdk else VS_KEYS hklm = winreg.HKEY_LOCAL_MACHINE for rkey in keys_to_check: From a4318e11287bc42d6ad7a8fc567c940308220fbf Mon Sep 17 00:00:00 2001 From: Blue Date: Wed, 3 Apr 2019 00:27:26 +0200 Subject: [PATCH 2/2] Update changelog and authors --- AUTHORS.md | 1 + CHANGELOG.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/AUTHORS.md b/AUTHORS.md index 53108463e..27aae63f4 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -55,6 +55,7 @@ - ([@civilx64](https://github.com/civilx64)) - ([@GSPP](https://github.com/GSPP)) - ([@omnicognate](https://github.com/omnicognate)) +- ([@OneBlue](https://github.com/OneBlue)) - ([@rico-chet](https://github.com/rico-chet)) - ([@rmadsen-ks](https://github.com/rmadsen-ks)) - ([@stonebig](https://github.com/stonebig)) diff --git a/CHANGELOG.md b/CHANGELOG.md index d611b2656..e863fa3d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ This document follows the conventions laid out in [Keep a CHANGELOG][]. ## [unreleased][] +- Look for installed Windows 10 sdk's during installation instead of relying on specific versions. + ### Added - Added support for embedding python into dotnet core 2.0 (NetStandard 2.0) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy