xref: /aosp_15_r20/external/cronet/build/config/siso/clang_windows.star (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# -*- bazel-starlark -*-
2*6777b538SAndroid Build Coastguard Worker# Copyright 2023 The Chromium Authors
3*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
4*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
5*6777b538SAndroid Build Coastguard Worker"""Siso configuration for clang-cl/windows."""
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Workerload("@builtin//encoding.star", "json")
8*6777b538SAndroid Build Coastguard Workerload("@builtin//path.star", "path")
9*6777b538SAndroid Build Coastguard Workerload("@builtin//struct.star", "module")
10*6777b538SAndroid Build Coastguard Workerload("./clang_all.star", "clang_all")
11*6777b538SAndroid Build Coastguard Workerload("./clang_code_coverage_wrapper.star", "clang_code_coverage_wrapper")
12*6777b538SAndroid Build Coastguard Workerload("./rewrapper_cfg.star", "rewrapper_cfg")
13*6777b538SAndroid Build Coastguard Worker
14*6777b538SAndroid Build Coastguard Workerdef __win_toolchain_dir(ctx):
15*6777b538SAndroid Build Coastguard Worker    # build/win_toolchain.json may not exist when
16*6777b538SAndroid Build Coastguard Worker    # $env:DEPOT_TOOLS_WIN_TOOLCHAIN=0 or so.
17*6777b538SAndroid Build Coastguard Worker    if not ctx.fs.exists("build/win_toolchain.json"):
18*6777b538SAndroid Build Coastguard Worker        return None
19*6777b538SAndroid Build Coastguard Worker    data = json.decode(str(ctx.fs.read("build/win_toolchain.json")))
20*6777b538SAndroid Build Coastguard Worker    if "path" in data:
21*6777b538SAndroid Build Coastguard Worker        return ctx.fs.canonpath(data["path"])
22*6777b538SAndroid Build Coastguard Worker    return None
23*6777b538SAndroid Build Coastguard Worker
24*6777b538SAndroid Build Coastguard Workerdef __filegroups(ctx):
25*6777b538SAndroid Build Coastguard Worker    win_toolchain_dir = __win_toolchain_dir(ctx)
26*6777b538SAndroid Build Coastguard Worker    fg = {}
27*6777b538SAndroid Build Coastguard Worker    if win_toolchain_dir:
28*6777b538SAndroid Build Coastguard Worker        fg.update({
29*6777b538SAndroid Build Coastguard Worker            # for precomputed subtree
30*6777b538SAndroid Build Coastguard Worker            win_toolchain_dir + ":headers-ci": {
31*6777b538SAndroid Build Coastguard Worker                "type": "glob",
32*6777b538SAndroid Build Coastguard Worker                "includes": [
33*6777b538SAndroid Build Coastguard Worker                    "*.h",
34*6777b538SAndroid Build Coastguard Worker                    "*.inl",
35*6777b538SAndroid Build Coastguard Worker                    "*.H",
36*6777b538SAndroid Build Coastguard Worker                    "*.Hxx",
37*6777b538SAndroid Build Coastguard Worker                    "*.hxx",
38*6777b538SAndroid Build Coastguard Worker                    "*.hpp",
39*6777b538SAndroid Build Coastguard Worker                    "VC/Tools/MSVC/*/include/*",
40*6777b538SAndroid Build Coastguard Worker                    "VC/Tools/MSVC/*/include/*/*",
41*6777b538SAndroid Build Coastguard Worker                ],
42*6777b538SAndroid Build Coastguard Worker            },
43*6777b538SAndroid Build Coastguard Worker        })
44*6777b538SAndroid Build Coastguard Worker    fg.update(clang_all.filegroups(ctx))
45*6777b538SAndroid Build Coastguard Worker    return fg
46*6777b538SAndroid Build Coastguard Worker
47*6777b538SAndroid Build Coastguard Workerdef __clang_compile_coverage(ctx, cmd):
48*6777b538SAndroid Build Coastguard Worker    clang_command = clang_code_coverage_wrapper.run(ctx, list(cmd.args))
49*6777b538SAndroid Build Coastguard Worker    ctx.actions.fix(args = clang_command)
50*6777b538SAndroid Build Coastguard Worker
51*6777b538SAndroid Build Coastguard Worker__handlers = {
52*6777b538SAndroid Build Coastguard Worker    "clang_compile_coverage": __clang_compile_coverage,
53*6777b538SAndroid Build Coastguard Worker}
54*6777b538SAndroid Build Coastguard Worker
55*6777b538SAndroid Build Coastguard Workerdef __step_config(ctx, step_config):
56*6777b538SAndroid Build Coastguard Worker    cfg = "buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_windows.cfg"
57*6777b538SAndroid Build Coastguard Worker    if ctx.fs.exists(cfg):
58*6777b538SAndroid Build Coastguard Worker        reproxy_config = rewrapper_cfg.parse(ctx, cfg)
59*6777b538SAndroid Build Coastguard Worker        largePlatform = {}
60*6777b538SAndroid Build Coastguard Worker        for k, v in reproxy_config["platform"].items():
61*6777b538SAndroid Build Coastguard Worker            if k.startswith("label:action"):
62*6777b538SAndroid Build Coastguard Worker                continue
63*6777b538SAndroid Build Coastguard Worker            largePlatform[k] = v
64*6777b538SAndroid Build Coastguard Worker        largePlatform["label:action_large"] = "1"
65*6777b538SAndroid Build Coastguard Worker        step_config["platforms"].update({
66*6777b538SAndroid Build Coastguard Worker            "clang-cl": reproxy_config["platform"],
67*6777b538SAndroid Build Coastguard Worker            "clang-cl_large": largePlatform,
68*6777b538SAndroid Build Coastguard Worker        })
69*6777b538SAndroid Build Coastguard Worker        step_config["input_deps"].update(clang_all.input_deps)
70*6777b538SAndroid Build Coastguard Worker
71*6777b538SAndroid Build Coastguard Worker        # when win_toolchain_dir is unknown (e.g.
72*6777b538SAndroid Build Coastguard Worker        # missing build/win_toolchain.json), we can't run
73*6777b538SAndroid Build Coastguard Worker        # clang-cl remotely as we can find sysroot files
74*6777b538SAndroid Build Coastguard Worker        # under exec_root, so just run locally.
75*6777b538SAndroid Build Coastguard Worker        remote = False
76*6777b538SAndroid Build Coastguard Worker        win_toolchain_dir = __win_toolchain_dir(ctx)
77*6777b538SAndroid Build Coastguard Worker        if win_toolchain_dir:
78*6777b538SAndroid Build Coastguard Worker            if reproxy_config["platform"]["OSFamily"] == "Windows":
79*6777b538SAndroid Build Coastguard Worker                step_config["input_deps"].update({
80*6777b538SAndroid Build Coastguard Worker                    win_toolchain_dir + ":headers": [
81*6777b538SAndroid Build Coastguard Worker                        win_toolchain_dir + ":headers-ci",
82*6777b538SAndroid Build Coastguard Worker                    ],
83*6777b538SAndroid Build Coastguard Worker                })
84*6777b538SAndroid Build Coastguard Worker            else:
85*6777b538SAndroid Build Coastguard Worker                step_config["input_deps"].update({
86*6777b538SAndroid Build Coastguard Worker                    win_toolchain_dir + ":headers": [
87*6777b538SAndroid Build Coastguard Worker                        win_toolchain_dir + ":headers-ci",
88*6777b538SAndroid Build Coastguard Worker                        # third_party/libc++ includes "DeplayIMP.h"
89*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "VC/Tools/MSVC/14.34.31933/include/DelayIMP.h"),
90*6777b538SAndroid Build Coastguard Worker                        # third_party/abseil-cpp includes "dbghelp.h"
91*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/dbghelp.h"),
92*6777b538SAndroid Build Coastguard Worker                        # third_party/abseil-cpp includes "aclapi.h"
93*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/aclapi.h"),
94*6777b538SAndroid Build Coastguard Worker                        # base/debug includes "psapi.h"
95*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/psapi.h"),
96*6777b538SAndroid Build Coastguard Worker                        # base/process includes "tlhelp32.h"
97*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/tlhelp32.h"),
98*6777b538SAndroid Build Coastguard Worker                        # base/process includes "userenv.h"
99*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/userenv.h"),
100*6777b538SAndroid Build Coastguard Worker                        # base includes "shlobj.h"
101*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/shlobj.h"),
102*6777b538SAndroid Build Coastguard Worker                        # base/win includes "lm.h"
103*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/lm.h"),
104*6777b538SAndroid Build Coastguard Worker                        # base/win includes "mdmregistration.h"
105*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/mdmregistration.h"),
106*6777b538SAndroid Build Coastguard Worker                        # base/win includes "shellscalingapi.h"
107*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/shellscalingapi.h"),
108*6777b538SAndroid Build Coastguard Worker                        # base/win includes "uiviewsettingsinterop.h"
109*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/uiviewsettingsinterop.h"),
110*6777b538SAndroid Build Coastguard Worker                        # native_client/src/shared/platform/win includes "WinError.h"
111*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/shared/WinError.h"),
112*6777b538SAndroid Build Coastguard Worker                        # third_party/webrtc/rtc_base/win includes "windows.graphics.directX.direct3d11.h"
113*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/cppwinrt/winrt/windows.graphics.directX.direct3d11.h"),
114*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/winrt/windows.graphics.directX.direct3d11.h"),
115*6777b538SAndroid Build Coastguard Worker                        # third_party/webrtc/rtc_base/win includes "windows.graphics.directX.direct3d11.interop.h"
116*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/windows.graphics.directX.direct3d11.interop.h"),
117*6777b538SAndroid Build Coastguard Worker                        # third_party/crashpad/crashpad/handler/win includes "werapi.h"
118*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/werapi.h"),
119*6777b538SAndroid Build Coastguard Worker                        # chrome/install_static/ includes "wtsapi32.h"
120*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/wtsapi32.h"),
121*6777b538SAndroid Build Coastguard Worker                        # third_party/dawn/include/dawn/native includes "DXGI1_4.h"
122*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/shared/DXGI1_4.h"),
123*6777b538SAndroid Build Coastguard Worker                        # v8/src/diagnostics includes "versionhelpers.h"
124*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/versionhelpers.h"),
125*6777b538SAndroid Build Coastguard Worker                        # ui/gfx/ includes "DXGIType.h"
126*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/shared/DXGIType.h"),
127*6777b538SAndroid Build Coastguard Worker                        # third_party/unrar includes "PowrProf.h"
128*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/PowrProf.h"),
129*6777b538SAndroid Build Coastguard Worker                        # device/base/ includes "dbt.h"
130*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/dbt.h"),
131*6777b538SAndroid Build Coastguard Worker                        # third_party/skia/ includes "ObjBase.h"
132*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/ObjBase.h"),
133*6777b538SAndroid Build Coastguard Worker                        # third_party/webrtc/rtc_base includes "ws2spi.h"
134*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/ws2spi.h"),
135*6777b538SAndroid Build Coastguard Worker                        # third_party/skia/ includes "T2EmbApi.h"
136*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/T2EmbApi.h"),
137*6777b538SAndroid Build Coastguard Worker                        # device/vr/windows/ includes "D3D11_1.h"
138*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/D3D11_1.h"),
139*6777b538SAndroid Build Coastguard Worker                        # rlz/win/ includes "Sddl.h"
140*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/shared/Sddl.h"),
141*6777b538SAndroid Build Coastguard Worker                        # chrome/common/safe_browsing/ includes "softpub.h"
142*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/softpub.h"),
143*6777b538SAndroid Build Coastguard Worker                        # services/device/generic_sensor/ includes "Sensors.h"
144*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Sensors.h"),
145*6777b538SAndroid Build Coastguard Worker                        # third_party/webrtc/modules/desktop_capture/win includes "windows.graphics.capture.interop.h"
146*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/windows.graphics.capture.interop.h"),
147*6777b538SAndroid Build Coastguard Worker                        # third_party/skia/ includes "FontSub.h"
148*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/FontSub.h"),
149*6777b538SAndroid Build Coastguard Worker                        # chrome/updater/ includes "regstr.h"
150*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/regstr.h"),
151*6777b538SAndroid Build Coastguard Worker                        # services/device/compute_pressure includes "pdh.h"
152*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/pdh.h"),
153*6777b538SAndroid Build Coastguard Worker                        # chrome/installer/ includes "mshtmhst.h"
154*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/mshtmhst.h"),
155*6777b538SAndroid Build Coastguard Worker                        # net/ssl/ includes "NCrypt.h"
156*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/NCrypt.h"),
157*6777b538SAndroid Build Coastguard Worker                        # device/fido/win/ includes "Combaseapi.h"
158*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Combaseapi.h"),
159*6777b538SAndroid Build Coastguard Worker                        # components/device_signals/core/system_signals/win includes "wscapi.h"
160*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/wscapi.h"),
161*6777b538SAndroid Build Coastguard Worker                        # net/proxy_resolution/win/ includes "dhcpcsdk.h"
162*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/dhcpcsdk.h"),
163*6777b538SAndroid Build Coastguard Worker                        # third_party/dawn/third_party/glfw includes "xinput.h"
164*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/xinput.h"),
165*6777b538SAndroid Build Coastguard Worker                        # v8/tools/v8windbg includes "pathcch.h"
166*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/pathcch.h"),
167*6777b538SAndroid Build Coastguard Worker                        # remoting/host includes "rpcproxy.h"
168*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/rpcproxy.h"),
169*6777b538SAndroid Build Coastguard Worker                        # sandbox/win includes "Aclapi.h"
170*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Aclapi.h"),
171*6777b538SAndroid Build Coastguard Worker                        # ui/accessibility/platform includes "uiautomation.h"
172*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/uiautomation.h"),
173*6777b538SAndroid Build Coastguard Worker                        # chrome/credential_provider/gaiacp includes "ntsecapi.h"
174*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/ntsecapi.h"),
175*6777b538SAndroid Build Coastguard Worker                        # net/dns includes "Winsock2.h"
176*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Winsock2.h"),
177*6777b538SAndroid Build Coastguard Worker                        # media/cdm/win includes "mferror.h"
178*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/mferror.h"),
179*6777b538SAndroid Build Coastguard Worker                        # chrome/credentialProvider/gaiacp includes "Winternl.h"
180*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Winternl.h"),
181*6777b538SAndroid Build Coastguard Worker                        # media/audio/win includes "audioclient.h"
182*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/audioclient.h"),
183*6777b538SAndroid Build Coastguard Worker                        # media/audio/win includes "MMDeviceAPI.h"
184*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/MMDeviceAPI.h"),
185*6777b538SAndroid Build Coastguard Worker                        # net/proxy_resolution/win includes "dhcpv6csdk.h"
186*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/dhcpv6csdk.h"),
187*6777b538SAndroid Build Coastguard Worker                        # components/system_media_controls/win includes "systemmediatransportcontrolsinterop.h"
188*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/systemmediatransportcontrolsinterop.h"),
189*6777b538SAndroid Build Coastguard Worker                        # ui/native_theme includes "Windows.Media.ClosedCaptioning.h"
190*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/cppwinrt/winrt/Windows.Media.ClosedCaptioning.h"),
191*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/winrt/Windows.Media.ClosedCaptioning.h"),
192*6777b538SAndroid Build Coastguard Worker                        # media/audio/win includes "Functiondiscoverykeys_devpkey.h"
193*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Functiondiscoverykeys_devpkey.h"),
194*6777b538SAndroid Build Coastguard Worker                        # device/fido includes "Winuser.h"
195*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Winuser.h"),
196*6777b538SAndroid Build Coastguard Worker                        # chrome/updater/win includes "msxml2.h"
197*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/msxml2.h"),
198*6777b538SAndroid Build Coastguard Worker                        # remoting/host includes "ime.h"
199*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/ime.h"),
200*6777b538SAndroid Build Coastguard Worker                        # remoting/host/win includes "D3DCommon.h"
201*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/D3DCommon.h"),
202*6777b538SAndroid Build Coastguard Worker                        # ui/views/controls/menu includes "Vssym32.h"
203*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Vssym32.h"),
204*6777b538SAndroid Build Coastguard Worker                        # third_party/wtl includes "richedit.h"
205*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/richedit.h"),
206*6777b538SAndroid Build Coastguard Worker                        # chrome/updater/net includes "Urlmon.h"
207*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Urlmon.h"),
208*6777b538SAndroid Build Coastguard Worker                        # device/gamepad includes "XInput.h"
209*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/XInput.h"),
210*6777b538SAndroid Build Coastguard Worker                        # chrome/credential_provider/gaiacp includes "Shlobj.h"
211*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Shlobj.h"),
212*6777b538SAndroid Build Coastguard Worker                        # content/renderer includes "mlang.h"
213*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/mlang.h"),
214*6777b538SAndroid Build Coastguard Worker                        # components/storage_monitor includes "portabledevice.h"
215*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/portabledevice.h"),
216*6777b538SAndroid Build Coastguard Worker                        # third_party/wtl includes "richole.h"
217*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/richole.h"),
218*6777b538SAndroid Build Coastguard Worker                        # chrome/utility/importer includes "intshcut.h"
219*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/intshcut.h"),
220*6777b538SAndroid Build Coastguard Worker                        # chrome/browser/net includes "Ws2spi.h"
221*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/Ws2spi.h"),
222*6777b538SAndroid Build Coastguard Worker                        # chrome/browser/enterprise/platform_auth includes "proofofpossessioncookieinfo.h)"
223*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/proofofpossessioncookieinfo.h"),
224*6777b538SAndroid Build Coastguard Worker                        # chrome/utility/importer includes "urlhist.h"
225*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/urlhist.h"),
226*6777b538SAndroid Build Coastguard Worker                        # chrome/updater/win/installer includes "msiquery.h"
227*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/msiquery.h"),
228*6777b538SAndroid Build Coastguard Worker                        # third_party/win_virtual_display/controller includes "Devpropdef.h"
229*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/shared/Devpropdef.h"),
230*6777b538SAndroid Build Coastguard Worker                        # third_party/dawn/third_party/dxc/include/dxc/Support/WinIncludes.h "ObjIdl.h"
231*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/ObjIdl.h"),
232*6777b538SAndroid Build Coastguard Worker                        # third_party/dawn/third_party/dxc/lib/Support includes "D3Dcommon.h"
233*6777b538SAndroid Build Coastguard Worker                        # https://github.com/microsoft/DirectXShaderCompiler/pull/6380
234*6777b538SAndroid Build Coastguard Worker                        path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/D3Dcommon.h"),
235*6777b538SAndroid Build Coastguard Worker                    ],
236*6777b538SAndroid Build Coastguard Worker                })
237*6777b538SAndroid Build Coastguard Worker                remote = True
238*6777b538SAndroid Build Coastguard Worker        remote_wrapper = reproxy_config.get("remote_wrapper")
239*6777b538SAndroid Build Coastguard Worker        step_config["rules"].extend([
240*6777b538SAndroid Build Coastguard Worker            {
241*6777b538SAndroid Build Coastguard Worker                "name": "clang-cl/cxx",
242*6777b538SAndroid Build Coastguard Worker                "action": "(.*_)?cxx",
243*6777b538SAndroid Build Coastguard Worker                "command_prefix": "..\\..\\third_party\\llvm-build\\Release+Asserts\\bin\\clang-cl.exe",
244*6777b538SAndroid Build Coastguard Worker                "inputs": [
245*6777b538SAndroid Build Coastguard Worker                    "third_party/llvm-build/Release+Asserts/bin/clang-cl.exe",
246*6777b538SAndroid Build Coastguard Worker                ],
247*6777b538SAndroid Build Coastguard Worker                "exclude_input_patterns": ["*.stamp"],
248*6777b538SAndroid Build Coastguard Worker                "platform_ref": "clang-cl",
249*6777b538SAndroid Build Coastguard Worker                "remote": remote,
250*6777b538SAndroid Build Coastguard Worker                "remote_wrapper": remote_wrapper,
251*6777b538SAndroid Build Coastguard Worker                "timeout": "2m",
252*6777b538SAndroid Build Coastguard Worker            },
253*6777b538SAndroid Build Coastguard Worker            {
254*6777b538SAndroid Build Coastguard Worker                "name": "clang-cl/cc",
255*6777b538SAndroid Build Coastguard Worker                "action": "(.*_)?cc",
256*6777b538SAndroid Build Coastguard Worker                "command_prefix": "..\\..\\third_party\\llvm-build\\Release+Asserts\\bin\\clang-cl.exe",
257*6777b538SAndroid Build Coastguard Worker                "inputs": [
258*6777b538SAndroid Build Coastguard Worker                    "third_party/llvm-build/Release+Asserts/bin/clang-cl.exe",
259*6777b538SAndroid Build Coastguard Worker                ],
260*6777b538SAndroid Build Coastguard Worker                "exclude_input_patterns": ["*.stamp"],
261*6777b538SAndroid Build Coastguard Worker                "platform_ref": "clang-cl",
262*6777b538SAndroid Build Coastguard Worker                "remote": remote,
263*6777b538SAndroid Build Coastguard Worker                "remote_wrapper": remote_wrapper,
264*6777b538SAndroid Build Coastguard Worker                "timeout": "2m",
265*6777b538SAndroid Build Coastguard Worker            },
266*6777b538SAndroid Build Coastguard Worker            {
267*6777b538SAndroid Build Coastguard Worker                "name": "clang-coverage/cxx",
268*6777b538SAndroid Build Coastguard Worker                "action": "(.*_)?cxx",
269*6777b538SAndroid Build Coastguard Worker                "command_prefix": "python3.exe ../../build/toolchain/clang_code_coverage_wrapper.py",
270*6777b538SAndroid Build Coastguard Worker                "inputs": [
271*6777b538SAndroid Build Coastguard Worker                    "third_party/llvm-build/Release+Asserts/bin/clang++",
272*6777b538SAndroid Build Coastguard Worker                ],
273*6777b538SAndroid Build Coastguard Worker                "exclude_input_patterns": ["*.stamp"],
274*6777b538SAndroid Build Coastguard Worker                "handler": "clang_compile_coverage",
275*6777b538SAndroid Build Coastguard Worker                "platform_ref": "clang-cl",
276*6777b538SAndroid Build Coastguard Worker                "remote": remote,
277*6777b538SAndroid Build Coastguard Worker                "remote_wrapper": remote_wrapper,
278*6777b538SAndroid Build Coastguard Worker                "timeout": "2m",
279*6777b538SAndroid Build Coastguard Worker            },
280*6777b538SAndroid Build Coastguard Worker            {
281*6777b538SAndroid Build Coastguard Worker                "name": "clang-coverage/cc",
282*6777b538SAndroid Build Coastguard Worker                "action": "(.*_)?cc",
283*6777b538SAndroid Build Coastguard Worker                "command_prefix": "python3.exe ../../build/toolchain/clang_code_coverage_wrapper.py",
284*6777b538SAndroid Build Coastguard Worker                "inputs": [
285*6777b538SAndroid Build Coastguard Worker                    "third_party/llvm-build/Release+Asserts/bin/clang",
286*6777b538SAndroid Build Coastguard Worker                ],
287*6777b538SAndroid Build Coastguard Worker                "exclude_input_patterns": ["*.stamp"],
288*6777b538SAndroid Build Coastguard Worker                "handler": "clang_compile_coverage",
289*6777b538SAndroid Build Coastguard Worker                "platform_ref": "clang-cl",
290*6777b538SAndroid Build Coastguard Worker                "remote": remote,
291*6777b538SAndroid Build Coastguard Worker                "remote_wrapper": remote_wrapper,
292*6777b538SAndroid Build Coastguard Worker                "timeout": "2m",
293*6777b538SAndroid Build Coastguard Worker            },
294*6777b538SAndroid Build Coastguard Worker        ])
295*6777b538SAndroid Build Coastguard Worker    return step_config
296*6777b538SAndroid Build Coastguard Worker
297*6777b538SAndroid Build Coastguard Workerclang = module(
298*6777b538SAndroid Build Coastguard Worker    "clang",
299*6777b538SAndroid Build Coastguard Worker    step_config = __step_config,
300*6777b538SAndroid Build Coastguard Worker    filegroups = __filegroups,
301*6777b538SAndroid Build Coastguard Worker    handlers = __handlers,
302*6777b538SAndroid Build Coastguard Worker)
303