xref: /aosp_15_r20/external/cronet/build/config/siso/proto_linux.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 proto/linux."""
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Workerload("@builtin//path.star", "path")
8*6777b538SAndroid Build Coastguard Workerload("@builtin//struct.star", "module")
9*6777b538SAndroid Build Coastguard Workerload("./config.star", "config")
10*6777b538SAndroid Build Coastguard Workerload("./protoc_wrapper.star", "protoc_wrapper")
11*6777b538SAndroid Build Coastguard Worker
12*6777b538SAndroid Build Coastguard Workerdef __filegroups(ctx):
13*6777b538SAndroid Build Coastguard Worker    return {
14*6777b538SAndroid Build Coastguard Worker        "third_party/protobuf/python/google:pyprotolib": {
15*6777b538SAndroid Build Coastguard Worker            "type": "glob",
16*6777b538SAndroid Build Coastguard Worker            "includes": ["*.py"],
17*6777b538SAndroid Build Coastguard Worker        },
18*6777b538SAndroid Build Coastguard Worker    }
19*6777b538SAndroid Build Coastguard Worker
20*6777b538SAndroid Build Coastguard Workerdef __protoc_wrapper(ctx, cmd):
21*6777b538SAndroid Build Coastguard Worker    inputs = protoc_wrapper.scandeps(ctx, cmd.args)
22*6777b538SAndroid Build Coastguard Worker    ctx.actions.fix(inputs = cmd.expanded_inputs() + inputs)
23*6777b538SAndroid Build Coastguard Worker
24*6777b538SAndroid Build Coastguard Worker__handlers = {
25*6777b538SAndroid Build Coastguard Worker    "protoc_wrapper": __protoc_wrapper,
26*6777b538SAndroid Build Coastguard Worker}
27*6777b538SAndroid Build Coastguard Worker
28*6777b538SAndroid Build Coastguard Workerdef __step_config(ctx, step_config):
29*6777b538SAndroid Build Coastguard Worker    remote_run = True  # Turn this to False when you do file access trace.
30*6777b538SAndroid Build Coastguard Worker    step_config["input_deps"].update({
31*6777b538SAndroid Build Coastguard Worker        "third_party/dom_distiller_js/protoc_plugins/util/plugin_protos.py": [
32*6777b538SAndroid Build Coastguard Worker            "third_party/protobuf/python/google:pyprotolib",
33*6777b538SAndroid Build Coastguard Worker        ],
34*6777b538SAndroid Build Coastguard Worker    })
35*6777b538SAndroid Build Coastguard Worker    step_config["rules"].extend([
36*6777b538SAndroid Build Coastguard Worker        {
37*6777b538SAndroid Build Coastguard Worker            "name": "proto/protoc_wrapper",
38*6777b538SAndroid Build Coastguard Worker            "command_prefix": "python3 ../../tools/protoc_wrapper/protoc_wrapper.py",
39*6777b538SAndroid Build Coastguard Worker            "indirect_inputs": {
40*6777b538SAndroid Build Coastguard Worker                "includes": ["*.proto"],
41*6777b538SAndroid Build Coastguard Worker            },
42*6777b538SAndroid Build Coastguard Worker            "exclude_input_patterns": [
43*6777b538SAndroid Build Coastguard Worker                "*.o",
44*6777b538SAndroid Build Coastguard Worker                "*.a",
45*6777b538SAndroid Build Coastguard Worker                "*.h",
46*6777b538SAndroid Build Coastguard Worker                "*.cc",
47*6777b538SAndroid Build Coastguard Worker                # "*_pb2.py",
48*6777b538SAndroid Build Coastguard Worker            ],
49*6777b538SAndroid Build Coastguard Worker            "handler": "protoc_wrapper",
50*6777b538SAndroid Build Coastguard Worker            "remote": remote_run,
51*6777b538SAndroid Build Coastguard Worker            # chromeos generates default.profraw?
52*6777b538SAndroid Build Coastguard Worker            "ignore_extra_output_pattern": ".*default.profraw",
53*6777b538SAndroid Build Coastguard Worker            # "deps": "depfile",
54*6777b538SAndroid Build Coastguard Worker            "output_local": True,
55*6777b538SAndroid Build Coastguard Worker        },
56*6777b538SAndroid Build Coastguard Worker    ])
57*6777b538SAndroid Build Coastguard Worker    return step_config
58*6777b538SAndroid Build Coastguard Worker
59*6777b538SAndroid Build Coastguard Workerproto = module(
60*6777b538SAndroid Build Coastguard Worker    "proto",
61*6777b538SAndroid Build Coastguard Worker    step_config = __step_config,
62*6777b538SAndroid Build Coastguard Worker    filegroups = __filegroups,
63*6777b538SAndroid Build Coastguard Worker    handlers = __handlers,
64*6777b538SAndroid Build Coastguard Worker)
65