Windows: fix kit base path and reference to windows registry key (#41388)
* Proper handling of argument passed as semicolon-separated str * Fix reference to windows registry key in win-wdk
This commit is contained in:
parent
88e738c343
commit
9e0720207a
@ -309,10 +309,14 @@ def find_windows_kit_roots() -> List[str]:
|
|||||||
return glob.glob(kit_base)
|
return glob.glob(kit_base)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def find_windows_kit_bin_paths(kit_base: Optional[str] = None) -> List[str]:
|
def find_windows_kit_bin_paths(
|
||||||
|
kit_base: Union[Optional[str], Optional[list]] = None
|
||||||
|
) -> List[str]:
|
||||||
"""Returns Windows kit bin directory per version"""
|
"""Returns Windows kit bin directory per version"""
|
||||||
kit_base = WindowsKitExternalPaths.find_windows_kit_roots() if not kit_base else kit_base
|
kit_base = WindowsKitExternalPaths.find_windows_kit_roots() if not kit_base else kit_base
|
||||||
assert kit_base, "Unexpectedly empty value for Windows kit base path"
|
assert kit_base, "Unexpectedly empty value for Windows kit base path"
|
||||||
|
if isinstance(kit_base, str):
|
||||||
|
kit_base = kit_base.split(";")
|
||||||
kit_paths = []
|
kit_paths = []
|
||||||
for kit in kit_base:
|
for kit in kit_base:
|
||||||
kit_bin = os.path.join(kit, "bin")
|
kit_bin = os.path.join(kit, "bin")
|
||||||
@ -320,10 +324,14 @@ def find_windows_kit_bin_paths(kit_base: Optional[str] = None) -> List[str]:
|
|||||||
return kit_paths
|
return kit_paths
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def find_windows_kit_lib_paths(kit_base: Optional[str] = None) -> List[str]:
|
def find_windows_kit_lib_paths(
|
||||||
|
kit_base: Union[Optional[str], Optional[list]] = None
|
||||||
|
) -> List[str]:
|
||||||
"""Returns Windows kit lib directory per version"""
|
"""Returns Windows kit lib directory per version"""
|
||||||
kit_base = WindowsKitExternalPaths.find_windows_kit_roots() if not kit_base else kit_base
|
kit_base = WindowsKitExternalPaths.find_windows_kit_roots() if not kit_base else kit_base
|
||||||
assert kit_base, "Unexpectedly empty value for Windows kit base path"
|
assert kit_base, "Unexpectedly empty value for Windows kit base path"
|
||||||
|
if isinstance(kit_base, str):
|
||||||
|
kit_base = kit_base.split(";")
|
||||||
kit_paths = []
|
kit_paths = []
|
||||||
for kit in kit_base:
|
for kit in kit_base:
|
||||||
kit_lib = os.path.join(kit, "Lib")
|
kit_lib = os.path.join(kit, "Lib")
|
||||||
|
@ -133,7 +133,7 @@ def install(self, spec, prefix):
|
|||||||
except ProcessError as pe:
|
except ProcessError as pe:
|
||||||
reg = winreg.WindowsRegistryView(
|
reg = winreg.WindowsRegistryView(
|
||||||
"SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots",
|
"SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots",
|
||||||
root_key=spack.util.windows_registry.HKEY_LOCAL_MACHINE,
|
root_key=spack.util.windows_registry.HKEY.HKEY_LOCAL_MACHINE,
|
||||||
)
|
)
|
||||||
if not reg:
|
if not reg:
|
||||||
# No Kits are available, failure was genuine
|
# No Kits are available, failure was genuine
|
||||||
|
Loading…
Reference in New Issue
Block a user