xref: /aosp_15_r20/external/cronet/build/config/siso/config.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"""Config module for checking siso -config flags."""
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Workerload("@builtin//struct.star", "module")
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Worker__KNOWN_CONFIG_OPTIONS = [
10*6777b538SAndroid Build Coastguard Worker    # Indicates that the build runs on a builder.
11*6777b538SAndroid Build Coastguard Worker    "builder",
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard Worker    # Indicate that it runs on Cog (automatically set on Cog).
14*6777b538SAndroid Build Coastguard Worker    "cog",
15*6777b538SAndroid Build Coastguard Worker
16*6777b538SAndroid Build Coastguard Worker    # Force disable additional remote on cog.
17*6777b538SAndroid Build Coastguard Worker    # TODO: b/333033551 - check performance with/without remote on cog.
18*6777b538SAndroid Build Coastguard Worker    "disable-remote-on-cog",
19*6777b538SAndroid Build Coastguard Worker
20*6777b538SAndroid Build Coastguard Worker    # TODO: b/308405411 - Enable this config for all builders.
21*6777b538SAndroid Build Coastguard Worker    "remote-devtools-frontend-typescript",
22*6777b538SAndroid Build Coastguard Worker
23*6777b538SAndroid Build Coastguard Worker    # TODO: b/316267242 - Enable remote links after confirming performance.
24*6777b538SAndroid Build Coastguard Worker    "remote-library-link",
25*6777b538SAndroid Build Coastguard Worker    "remote-exec-link",
26*6777b538SAndroid Build Coastguard Worker]
27*6777b538SAndroid Build Coastguard Worker
28*6777b538SAndroid Build Coastguard Workerdef __check(ctx):
29*6777b538SAndroid Build Coastguard Worker    if "config" in ctx.flags:
30*6777b538SAndroid Build Coastguard Worker        for cfg in ctx.flags["config"].split(","):
31*6777b538SAndroid Build Coastguard Worker            if cfg not in __KNOWN_CONFIG_OPTIONS:
32*6777b538SAndroid Build Coastguard Worker                print("unknown config: %s" % cfg)
33*6777b538SAndroid Build Coastguard Worker
34*6777b538SAndroid Build Coastguard Workerdef __get(ctx, key):
35*6777b538SAndroid Build Coastguard Worker    disableRemoteOnCog = False
36*6777b538SAndroid Build Coastguard Worker    if "config" in ctx.flags:
37*6777b538SAndroid Build Coastguard Worker        for cfg in ctx.flags["config"].split(","):
38*6777b538SAndroid Build Coastguard Worker            if cfg == key:
39*6777b538SAndroid Build Coastguard Worker                return True
40*6777b538SAndroid Build Coastguard Worker            if cfg == "disable-remote-on-cog":
41*6777b538SAndroid Build Coastguard Worker                disableRemoteOnCog = True
42*6777b538SAndroid Build Coastguard Worker    if ctx.fs.exists("../.citc"):
43*6777b538SAndroid Build Coastguard Worker        if disableRemoteOnCog:
44*6777b538SAndroid Build Coastguard Worker            return False
45*6777b538SAndroid Build Coastguard Worker
46*6777b538SAndroid Build Coastguard Worker        # on cog, .citc directory exist in parent directory of exec root.
47*6777b538SAndroid Build Coastguard Worker        # disable race strategy as "builder".
48*6777b538SAndroid Build Coastguard Worker        # enable "remote-*" on cog
49*6777b538SAndroid Build Coastguard Worker        # TODO: b/308405411 - enable "remote-devtools-frontend-typescript"
50*6777b538SAndroid Build Coastguard Worker        if key in ("builder", "cog", "remote-library-link", "remote-exec-link"):
51*6777b538SAndroid Build Coastguard Worker            return True
52*6777b538SAndroid Build Coastguard Worker    return False
53*6777b538SAndroid Build Coastguard Worker
54*6777b538SAndroid Build Coastguard Workerconfig = module(
55*6777b538SAndroid Build Coastguard Worker    "config",
56*6777b538SAndroid Build Coastguard Worker    check = __check,
57*6777b538SAndroid Build Coastguard Worker    get = __get,
58*6777b538SAndroid Build Coastguard Worker)
59