[go: nahoru, domu]

blob: 7195eed1a5d68ade1872244b3d3c700fed099fbf [file] [log] [blame]
# -*- bazel-starlark -*-
# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Siso configuration for clang/mac."""
load("@builtin//path.star", "path")
load("@builtin//struct.star", "module")
load("./clang_all.star", "clang_all")
load("./clang_code_coverage_wrapper.star", "clang_code_coverage_wrapper")
load("./rewrapper_cfg.star", "rewrapper_cfg")
def __filegroups(ctx):
fg = {
"build/mac_files/xcode_binaries/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk:headers": {
"type": "glob",
"includes": [
"*.h",
"*.json",
"*.modulemap",
"Current",
"Frameworks",
"Headers",
"Modules",
"crt*.o",
"usr/include/c++/v1/*",
"usr/include/c++/v1/*/*",
],
},
}
fg.update(clang_all.filegroups(ctx))
return fg
def __clang_compile_coverage(ctx, cmd):
clang_command = clang_code_coverage_wrapper.run(ctx, list(cmd.args))
ctx.actions.fix(args = clang_command)
__handlers = {
"clang_compile_coverage": __clang_compile_coverage,
}
def __step_config(ctx, step_config):
cfg = "buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_mac.cfg"
if ctx.fs.exists(cfg):
reproxy_config = rewrapper_cfg.parse(ctx, cfg)
step_config["platforms"].update({
"clang": reproxy_config["platform"],
})
step_config["input_deps"].update(clang_all.input_deps)
step_config["rules"].extend([
{
"name": "clang/cxx",
"action": "(.*_)?cxx",
"command_prefix": "../../third_party/llvm-build/Release+Asserts/bin/clang++",
"exclude_input_patterns": ["*.stamp"],
"platform_ref": "clang",
"remote": True,
"remote_wrapper": reproxy_config["remote_wrapper"],
},
{
"name": "clang/cc",
"action": "(.*_)?cc",
"command_prefix": "../../third_party/llvm-build/Release+Asserts/bin/clang",
"exclude_input_patterns": ["*.stamp"],
"platform_ref": "clang",
"remote": True,
"remote_wrapper": reproxy_config["remote_wrapper"],
},
{
"name": "clang/objcxx",
"action": "(.*_)?objcxx",
"command_prefix": "../../third_party/llvm-build/Release+Asserts/bin/clang++",
"exclude_input_patterns": ["*.stamp"],
"platform_ref": "clang",
"remote": True,
"remote_wrapper": reproxy_config["remote_wrapper"],
},
{
"name": "clang/objc",
"action": "(.*_)?objc",
"command_prefix": "../../third_party/llvm-build/Release+Asserts/bin/clang",
"exclude_input_patterns": ["*.stamp"],
"platform_ref": "clang",
"remote": True,
"remote_wrapper": reproxy_config["remote_wrapper"],
},
{
"name": "clang-coverage/cxx",
"action": "(.*_)?cxx",
"command_prefix": "python3 ../../build/toolchain/clang_code_coverage_wrapper.py",
"inputs": [
"third_party/llvm-build/Release+Asserts/bin/clang++",
],
"exclude_input_patterns": ["*.stamp"],
"handler": "clang_compile_coverage",
"platform_ref": "clang",
"remote": True,
"remote_wrapper": reproxy_config["remote_wrapper"],
},
{
"name": "clang-coverage/cc",
"action": "(.*_)?cc",
"command_prefix": "python3 ../../build/toolchain/clang_code_coverage_wrapper.py",
"inputs": [
"third_party/llvm-build/Release+Asserts/bin/clang",
],
"exclude_input_patterns": ["*.stamp"],
"handler": "clang_compile_coverage",
"platform_ref": "clang",
"remote": True,
"remote_wrapper": reproxy_config["remote_wrapper"],
},
{
"name": "clang-coverage/objcxx",
"action": "(.*_)?objcxx",
"command_prefix": "python3 ../../build/toolchain/clang_code_coverage_wrapper.py",
"inputs": [
"third_party/llvm-build/Release+Asserts/bin/clang++",
],
"exclude_input_patterns": ["*.stamp"],
"handler": "clang_compile_coverage",
"platform_ref": "clang",
"remote": True,
"remote_wrapper": reproxy_config["remote_wrapper"],
},
{
"name": "clang-coverage/objc",
"action": "(.*_)?objc",
"command_prefix": "python3 ../../build/toolchain/clang_code_coverage_wrapper.py",
"inputs": [
"third_party/llvm-build/Release+Asserts/bin/clang",
],
"exclude_input_patterns": ["*.stamp"],
"handler": "clang_compile_coverage",
"platform_ref": "clang",
"remote": True,
"remote_wrapper": reproxy_config["remote_wrapper"],
},
])
return step_config
clang = module(
"clang",
step_config = __step_config,
filegroups = __filegroups,
handlers = __handlers,
)