xref: /aosp_15_r20/external/cronet/build/config/siso/simple.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 simple steps."""
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Workerload("@builtin//struct.star", "module")
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Workerdef __filegroups(ctx):
10*6777b538SAndroid Build Coastguard Worker    return {}
11*6777b538SAndroid Build Coastguard Worker
12*6777b538SAndroid Build Coastguard Workerdef __copy(ctx, cmd):
13*6777b538SAndroid Build Coastguard Worker    input = cmd.inputs[0]
14*6777b538SAndroid Build Coastguard Worker    out = cmd.outputs[0]
15*6777b538SAndroid Build Coastguard Worker    ctx.actions.copy(input, out, recursive = ctx.fs.is_dir(input))
16*6777b538SAndroid Build Coastguard Worker    ctx.actions.exit(exit_status = 0)
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Workerdef __stamp(ctx, cmd):
19*6777b538SAndroid Build Coastguard Worker    if len(cmd.outputs) > 1:
20*6777b538SAndroid Build Coastguard Worker        # run touch command as is?
21*6777b538SAndroid Build Coastguard Worker        # iOS build stamp after swiftc.py would try to touch
22*6777b538SAndroid Build Coastguard Worker        # dir and non-exist-in-hashfs file?
23*6777b538SAndroid Build Coastguard Worker        # TODO(b/300385880): fix this workaround.
24*6777b538SAndroid Build Coastguard Worker        return
25*6777b538SAndroid Build Coastguard Worker
26*6777b538SAndroid Build Coastguard Worker    # don't truncate if file exists.
27*6777b538SAndroid Build Coastguard Worker    out = cmd.outputs[0]
28*6777b538SAndroid Build Coastguard Worker    if ctx.fs.exists(out):
29*6777b538SAndroid Build Coastguard Worker        ctx.actions.write(out, ctx.fs.read(out))
30*6777b538SAndroid Build Coastguard Worker    else:
31*6777b538SAndroid Build Coastguard Worker        ctx.actions.write(out)
32*6777b538SAndroid Build Coastguard Worker    ctx.actions.exit(exit_status = 0)
33*6777b538SAndroid Build Coastguard Worker
34*6777b538SAndroid Build Coastguard Worker__handlers = {
35*6777b538SAndroid Build Coastguard Worker    "copy": __copy,
36*6777b538SAndroid Build Coastguard Worker    "stamp": __stamp,
37*6777b538SAndroid Build Coastguard Worker}
38*6777b538SAndroid Build Coastguard Worker
39*6777b538SAndroid Build Coastguard Workerdef __step_config(ctx, step_config):
40*6777b538SAndroid Build Coastguard Worker    step_config["rules"].extend([
41*6777b538SAndroid Build Coastguard Worker        {
42*6777b538SAndroid Build Coastguard Worker            "name": "simple/copy",
43*6777b538SAndroid Build Coastguard Worker            "action": "(.*_)?copy",
44*6777b538SAndroid Build Coastguard Worker            "handler": "copy",
45*6777b538SAndroid Build Coastguard Worker        },
46*6777b538SAndroid Build Coastguard Worker        {
47*6777b538SAndroid Build Coastguard Worker            "name": "simple/stamp",
48*6777b538SAndroid Build Coastguard Worker            "action": "(.*_)?stamp",
49*6777b538SAndroid Build Coastguard Worker            "handler": "stamp",
50*6777b538SAndroid Build Coastguard Worker            "replace": True,
51*6777b538SAndroid Build Coastguard Worker        },
52*6777b538SAndroid Build Coastguard Worker    ])
53*6777b538SAndroid Build Coastguard Worker    return step_config
54*6777b538SAndroid Build Coastguard Worker
55*6777b538SAndroid Build Coastguard Workersimple = module(
56*6777b538SAndroid Build Coastguard Worker    "simple",
57*6777b538SAndroid Build Coastguard Worker    step_config = __step_config,
58*6777b538SAndroid Build Coastguard Worker    filegroups = __filegroups,
59*6777b538SAndroid Build Coastguard Worker    handlers = __handlers,
60*6777b538SAndroid Build Coastguard Worker)
61