tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

clang_mac.star (2019B)


      1 # -*- bazel-starlark -*-
      2 # Copyright 2023 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 for clang/mac."""
      6 
      7 load("@builtin//lib/gn.star", "gn")
      8 load("@builtin//struct.star", "module")
      9 load("./clang_all.star", "clang_all")
     10 load("./clang_unix.star", "clang_unix")
     11 load("./mac_sdk.star", "mac_sdk")
     12 load("./rewrapper_cfg.star", "rewrapper_cfg")
     13 
     14 def __filegroups(ctx):
     15     fg = {}
     16     fg.update(mac_sdk.filegroups(ctx))
     17     fg.update(clang_all.filegroups(ctx))
     18     return fg
     19 
     20 __handlers = {}
     21 __handlers.update(clang_unix.handlers)
     22 __handlers.update(clang_all.handlers)
     23 
     24 def __step_config(ctx, step_config):
     25     cfg = "buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_mac.cfg"
     26     if ctx.fs.exists(cfg):
     27         reproxy_config = rewrapper_cfg.parse(ctx, cfg)
     28         largePlatform = {}
     29         for k, v in reproxy_config["platform"].items():
     30             if k.startswith("label:action"):
     31                 continue
     32             largePlatform[k] = v
     33         largePlatform["label:action_large"] = "1"
     34         step_config["platforms"].update({
     35             "clang": reproxy_config["platform"],
     36             "clang_large": largePlatform,
     37         })
     38         step_config["input_deps"].update(clang_all.input_deps)
     39 
     40         clang_rules = clang_unix.rules(ctx)
     41 
     42         for rule in clang_rules:
     43             if "remote" in rule and rule["remote"]:
     44                 rule["remote_wrapper"] = reproxy_config["remote_wrapper"]
     45                 if "platform_ref" not in rule:
     46                     rule["platform_ref"] = "clang"
     47                 elif rule["platform_ref"] == "large":
     48                     rule["platform_ref"] = "clang_large"
     49             step_config["rules"].append(rule)
     50     elif gn.args(ctx).get("use_remoteexec") == "true":
     51         fail("remoteexec requires rewrapper config")
     52     return step_config
     53 
     54 clang = module(
     55     "clang",
     56     step_config = __step_config,
     57     filegroups = __filegroups,
     58     handlers = __handlers,
     59 )