From f79e55564887998f73141662440f4f6e8440ca96 Mon Sep 17 00:00:00 2001
From: Nick Alexander <nalexander@mozilla.com>
Date: Thu, 2 Dec 2021 04:03:42 +0000
Subject: [PATCH] Bug 1742885 - Use valid Windows SDK dir in
 `--enable-path-remapping`, and normalize SDK dirs.
 r=firefox-build-system-reviewers,glandium

Without normalization, the Windows SDK dirs are usually like
`c:/Program Files (x86)/Windows Kits/{8.1,10}`, which fails because
the build system (really, `cc-rs`) doesn't handle spaces in paths.

Differential Revision: https://phabricator.services.mozilla.com/D132287
---
 build/moz.configure/toolchain.configure | 6 ++++--
 build/moz.configure/windows.configure   | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
index 0eeaac0dc4ed2..4bced4808083b 100755
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
@@ -2866,7 +2866,7 @@ def path_remapping(value):
     target,
     check_build_environment,
     target_sysroot.path,
-    windows_sdk_dir,
+    valid_windows_sdk_dir,
     vc_path,
     when="--enable-path-remapping",
 )
@@ -2890,7 +2890,9 @@ def path_remappings(target, build_env, sysroot_path, windows_sdk_dir, vc_path):
     if sysroot_path:
         path_remappings.append((sysroot_path, "k:/" if win else "/sysroot/"))
     if windows_sdk_dir:
-        path_remappings.append((windows_sdk_dir, "k:/" if win else "/windows_sdk/"))
+        path_remappings.append(
+            (windows_sdk_dir.path, "k:/" if win else "/windows_sdk/")
+        )
     if vc_path:
         path_remappings.append((vc_path, "v:/" if win else "/vc/"))
 
diff --git a/build/moz.configure/windows.configure b/build/moz.configure/windows.configure
index 41bd8564a25de..7549744f02e25 100644
--- a/build/moz.configure/windows.configure
+++ b/build/moz.configure/windows.configure
@@ -41,7 +41,7 @@ def windows_sdk_dir(value, host, compiler):
         return ()
 
     return set(
-        x[1]
+        normalize_path(x[1])
         for x in get_registry_values(
             r"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots"
             r"\KitsRoot*",
-- 
GitLab