1# -*- bazel-starlark -*- 2# Copyright 2024 The Chromium Authors 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5"""Siso configuration fow win sdk.""" 6 7load("@builtin//encoding.star", "json") 8load("@builtin//lib/gn.star", "gn") 9load("@builtin//path.star", "path") 10load("@builtin//runtime.star", "runtime") 11load("@builtin//struct.star", "module") 12load("./gn_logs.star", "gn_logs") 13 14def __win_toolchain_dir(ctx): 15 # build/win_toolchain.json may not exist when 16 # $env:DEPOT_TOOLS_WIN_TOOLCHAIN=0 or so. 17 if not ctx.fs.exists("build/win_toolchain.json"): 18 return None 19 data = json.decode(str(ctx.fs.read("build/win_toolchain.json"))) 20 if "path" in data: 21 return ctx.fs.canonpath(data["path"]) 22 return None 23 24def __win_sdk_version(ctx): 25 return gn_logs.read(ctx).get("windows_sdk_version") 26 27def __target_cpu(ctx): 28 if "args.gn" in ctx.metadata: 29 gn_args = gn.args(ctx) 30 target = gn_args.get("target_cpu", "").strip('"') 31 if target: 32 return target 33 return __host_cpu() 34 35def __host_cpu(): 36 if runtime.arch == "amd64": 37 return "x64" 38 return runtime.arch 39 40def __enabled(ctx): 41 if "args.gn" in ctx.metadata: 42 gn_args = gn.args(ctx) 43 if gn_args.get("target_os") == '"win"': 44 return True 45 return runtime.os == "windows" 46 47def __filegroups(ctx): 48 win_toolchain_dir = __win_toolchain_dir(ctx) 49 sdk_version = __win_sdk_version(ctx) 50 target_cpu = __target_cpu(ctx) 51 host_cpu = __host_cpu() 52 fg = {} 53 if win_toolchain_dir and sdk_version: 54 def __extend_libs_for_target_cpu(libs, cpu): 55 libs.extend([ 56 path.join("VC/Tools/MSVC/*/lib", cpu, "*.lib"), 57 path.join("VC/Tools/MSVC/*/lib", cpu, "*.pdb"), 58 path.join("VC/Tools/MSVC/*/*/lib", cpu, "*.lib"), 59 path.join("VC/Tools/MSVC/*/*/lib", cpu, "*.pdb"), 60 path.join("VC/Tools/MSVC/*/lib", cpu, "*/*.lib"), 61 path.join("Windows Kits/10/Lib", sdk_version, "ucrt", cpu, "*.lib"), 62 path.join("Windows Kits/10/Lib", sdk_version, "um", cpu, "*.lib"), 63 path.join("Windows Kits/10/Lib", cpu, "*.lib"), 64 ]) 65 return libs 66 67 toolchain_lib_globs = [ 68 "DIA SDK/lib/*.lib", 69 "DIA SDK/lib/*/*.lib", 70 ] 71 toolchain_lib_globs = __extend_libs_for_target_cpu(toolchain_lib_globs, target_cpu) 72 if target_cpu != host_cpu: 73 # Add libs for host OS if it's cross build because it might be a 74 # target with sub toolchain for host. 75 toolchain_lib_globs = __extend_libs_for_target_cpu(toolchain_lib_globs, host_cpu) 76 77 fg.update({ 78 # for precomputed subtrees. 79 # Case insensitive files are listed by filegroups. 80 # But, case sensitive files are added individually in 81 # __step_config() below. 82 win_toolchain_dir + ":headers-ci": { 83 "type": "glob", 84 "includes": [ 85 "*.h", 86 "*.inl", 87 "*.H", 88 "*.Hxx", 89 "*.hxx", 90 "*.hpp", 91 "VC/Tools/MSVC/*/include/*", 92 "VC/Tools/MSVC/*/include/*/*", 93 ], 94 }, 95 win_toolchain_dir + ":libs-ci": { 96 "type": "glob", 97 "includes": toolchain_lib_globs, 98 }, 99 }) 100 return fg 101 102def __step_config(ctx, step_config): 103 win_toolchain_dir = __win_toolchain_dir(ctx) 104 if not win_toolchain_dir: 105 return 106 target_cpu = __target_cpu(ctx) 107 host_cpu = __host_cpu() 108 win_toolchain_headers = [ 109 win_toolchain_dir + ":headers-ci", 110 ] 111 win_toolchain_libs = [ 112 win_toolchain_dir + ":libs-ci", 113 ] 114 sdk_version = __win_sdk_version(ctx) 115 if sdk_version: 116 win_toolchain_headers.extend([ 117 # third_party/abseil-cpp includes "dbghelp.h" 118 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/dbghelp.h"), 119 # third_party/abseil-cpp includes "aclapi.h" 120 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/aclapi.h"), 121 # base/debug includes "psapi.h" 122 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/psapi.h"), 123 # base/process includes "tlhelp32.h" 124 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/tlhelp32.h"), 125 # base/process includes "userenv.h" 126 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/userenv.h"), 127 # base includes "shlobj.h" 128 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/shlobj.h"), 129 # base/win includes "lm.h" 130 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/lm.h"), 131 # base/win includes "mdmregistration.h" 132 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/mdmregistration.h"), 133 # base/win includes "shellscalingapi.h" 134 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/shellscalingapi.h"), 135 # base/win includes "uiviewsettingsinterop.h" 136 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/uiviewsettingsinterop.h"), 137 # native_client/src/shared/platform/win includes "WinError.h" 138 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "shared/WinError.h"), 139 # third_party/webrtc/rtc_base/win includes "windows.graphics.directX.direct3d11.h" 140 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "cppwinrt/winrt/windows.graphics.directX.direct3d11.h"), 141 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "winrt/windows.graphics.directX.direct3d11.h"), 142 # third_party/webrtc/rtc_base/win includes "windows.graphics.directX.direct3d11.interop.h" 143 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/windows.graphics.directX.direct3d11.interop.h"), 144 # third_party/crashpad/crashpad/handler/win includes "werapi.h" 145 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/werapi.h"), 146 # chrome/install_static/ includes "wtsapi32.h" 147 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/wtsapi32.h"), 148 # third_party/dawn/include/dawn/native includes "DXGI1_4.h" 149 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "shared/DXGI1_4.h"), 150 # v8/src/diagnostics includes "versionhelpers.h" 151 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/versionhelpers.h"), 152 # ui/gfx/ includes "DXGIType.h" 153 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "shared/DXGIType.h"), 154 # third_party/unrar includes "PowrProf.h" 155 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/PowrProf.h"), 156 # device/base/ includes "dbt.h" 157 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/dbt.h"), 158 # third_party/skia/ includes "ObjBase.h" 159 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/ObjBase.h"), 160 # third_party/webrtc/rtc_base includes "ws2spi.h" 161 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/ws2spi.h"), 162 # third_party/skia/ includes "T2EmbApi.h" 163 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/T2EmbApi.h"), 164 # device/vr/windows/ includes "D3D11_1.h" 165 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/D3D11_1.h"), 166 # rlz/win/ includes "Sddl.h" 167 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "shared/Sddl.h"), 168 # chrome/common/safe_browsing/ includes "softpub.h" 169 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/softpub.h"), 170 # services/device/generic_sensor/ includes "Sensors.h" 171 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Sensors.h"), 172 # third_party/webrtc/modules/desktop_capture/win includes "windows.graphics.capture.interop.h" 173 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/windows.graphics.capture.interop.h"), 174 # third_party/skia/ includes "FontSub.h" 175 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/FontSub.h"), 176 # chrome/updater/ includes "regstr.h" 177 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/regstr.h"), 178 # services/device/compute_pressure includes "pdh.h" 179 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/pdh.h"), 180 # chrome/installer/ includes "mshtmhst.h" 181 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/mshtmhst.h"), 182 # net/ssl/ includes "NCrypt.h" 183 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/NCrypt.h"), 184 # device/fido/win/ includes "Combaseapi.h" 185 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Combaseapi.h"), 186 # components/device_signals/core/system_signals/win includes "wscapi.h" 187 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/wscapi.h"), 188 # net/proxy_resolution/win/ includes "dhcpcsdk.h" 189 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/dhcpcsdk.h"), 190 # third_party/dawn/third_party/glfw includes "xinput.h" 191 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/xinput.h"), 192 # v8/tools/v8windbg includes "pathcch.h" 193 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/pathcch.h"), 194 # remoting/host includes "rpcproxy.h" 195 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/rpcproxy.h"), 196 # sandbox/win includes "Aclapi.h" 197 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Aclapi.h"), 198 # ui/accessibility/platform includes "uiautomation.h" 199 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/uiautomation.h"), 200 # chrome/credential_provider/gaiacp includes "ntsecapi.h" 201 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/ntsecapi.h"), 202 # net/dns includes "Winsock2.h" 203 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Winsock2.h"), 204 # media/cdm/win includes "mferror.h" 205 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/mferror.h"), 206 # chrome/credentialProvider/gaiacp includes "Winternl.h" 207 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Winternl.h"), 208 # media/audio/win includes "audioclient.h" 209 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/audioclient.h"), 210 # media/audio/win includes "MMDeviceAPI.h" 211 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/MMDeviceAPI.h"), 212 # net/proxy_resolution/win includes "dhcpv6csdk.h" 213 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/dhcpv6csdk.h"), 214 # components/system_media_controls/win includes "systemmediatransportcontrolsinterop.h" 215 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/systemmediatransportcontrolsinterop.h"), 216 # ui/native_theme includes "Windows.Media.ClosedCaptioning.h" 217 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "cppwinrt/winrt/Windows.Media.ClosedCaptioning.h"), 218 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "winrt/Windows.Media.ClosedCaptioning.h"), 219 # media/audio/win includes "Functiondiscoverykeys_devpkey.h" 220 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Functiondiscoverykeys_devpkey.h"), 221 # device/fido includes "Winuser.h" 222 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Winuser.h"), 223 # chrome/updater/win includes "msxml2.h" 224 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/msxml2.h"), 225 # remoting/host includes "ime.h" 226 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/ime.h"), 227 # remoting/host/win includes "D3DCommon.h" 228 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/D3DCommon.h"), 229 # ui/views/controls/menu includes "Vssym32.h" 230 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Vssym32.h"), 231 # third_party/wtl includes "richedit.h" 232 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/richedit.h"), 233 # chrome/updater/net includes "Urlmon.h" 234 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Urlmon.h"), 235 # device/gamepad includes "XInput.h" 236 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/XInput.h"), 237 # chrome/credential_provider/gaiacp includes "Shlobj.h" 238 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Shlobj.h"), 239 # content/renderer includes "mlang.h" 240 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/mlang.h"), 241 # components/storage_monitor includes "portabledevice.h" 242 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/portabledevice.h"), 243 # third_party/wtl includes "richole.h" 244 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/richole.h"), 245 # chrome/utility/importer includes "intshcut.h" 246 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/intshcut.h"), 247 # chrome/browser/net includes "Ws2spi.h" 248 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/Ws2spi.h"), 249 # chrome/browser/enterprise/platform_auth includes "proofofpossessioncookieinfo.h)" 250 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/proofofpossessioncookieinfo.h"), 251 # chrome/utility/importer includes "urlhist.h" 252 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/urlhist.h"), 253 # chrome/updater/win/installer includes "msiquery.h" 254 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/msiquery.h"), 255 # third_party/win_virtual_display/controller includes "Devpropdef.h" 256 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "shared/Devpropdef.h"), 257 # third_party/dawn/third_party/dxc/include/dxc/Support/WinIncludes.h "ObjIdl.h" 258 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/ObjIdl.h"), 259 # third_party/dawn/third_party/dxc/lib/Support includes "D3Dcommon.h" 260 # https://github.com/microsoft/DirectXShaderCompiler/pull/6380 261 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version, "um/D3Dcommon.h"), 262 ]) 263 264 def __extend_libs_for_case_varients(libs, cpu): 265 # The following libs are necessary to resolve case mismatches on 266 # Linux remote workers. 267 libs.extend([ 268 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "Bthprops.lib"), 269 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "Cfgmgr32.lib"), 270 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "Crypt32.lib"), 271 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "DXGI.lib"), 272 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "DbgEng.lib"), 273 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "DbgModel.lib"), 274 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "Ole32.lib"), 275 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "Pathcch.lib"), 276 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "Propsys.lib"), 277 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "Rtworkq.lib"), 278 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "RuntimeObject.lib"), 279 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "Setupapi.lib"), 280 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "Wintrust.lib"), 281 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "advapi32.lib"), 282 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "comctl32.lib"), 283 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "comdlg32.lib"), 284 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "credui.lib"), 285 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "crypt32.lib"), 286 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "dbghelp.lib"), 287 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "dhcpcsvc.lib"), 288 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "dnsapi.lib"), 289 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "gdi32.lib"), 290 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "imagehlp.lib"), 291 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "imm32.lib"), 292 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "kernel32.lib"), 293 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "mf.lib"), 294 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "mfplat.lib"), 295 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "msi.lib"), 296 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "msimg32.lib"), 297 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "msxml2.lib"), 298 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "netapi32.lib"), 299 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "ntdsapi.lib"), 300 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "ole32.lib"), 301 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "oleacc.lib"), 302 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "oleaut32.lib"), 303 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "onecore.lib"), 304 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "opengl32.lib"), 305 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "pdh.lib"), 306 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "portabledeviceguids.lib"), 307 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "rpcns4.lib"), 308 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "rpcrt4.lib"), 309 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "sapi.lib"), 310 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "secur32.lib"), 311 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "setupapi.lib"), 312 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "shlwapi.lib"), 313 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "uiautomationcore.lib"), 314 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "urlmon.lib"), 315 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "user32.lib"), 316 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "userenv.lib"), 317 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "usp10.lib"), 318 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "uuid.lib"), 319 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "uxtheme.lib"), 320 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "version.lib"), 321 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "wininet.lib"), 322 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "winmm.lib"), 323 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "winspool.lib"), 324 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "wintrust.lib"), 325 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "ws2_32.lib"), 326 path.join(win_toolchain_dir, "Windows Kits/10/Lib", sdk_version, "um", cpu, "wtsapi32.lib"), 327 ]) 328 return libs 329 330 win_toolchain_libs.extend([ 331 # Having the empty "Windows Kits/10/Include/{sdk_version}" directory is necessary 332 # for lld-link to search libs under "Windows Kits/10/Lib/{sdk_version}/um". 333 path.join(win_toolchain_dir, "Windows Kits/10/Include", sdk_version), 334 ]) 335 win_toolchain_libs = __extend_libs_for_case_varients(win_toolchain_libs, target_cpu) 336 if target_cpu != host_cpu: 337 win_toolchain_libs = __extend_libs_for_case_varients(win_toolchain_libs, host_cpu) 338 step_config["input_deps"].update({ 339 win_toolchain_dir + ":headers": win_toolchain_headers, 340 win_toolchain_dir + ":libs": win_toolchain_libs, 341 }) 342 else: 343 # sdk_version may be unknown when first build after `gn clean` (no gn_logs.txt yet) 344 print("sdk_version is unknown") 345 346win_sdk = module( 347 "win_sdk", 348 enabled = __enabled, 349 toolchain_dir = __win_toolchain_dir, 350 step_config = __step_config, 351 filegroups = __filegroups, 352) 353