xref: /aosp_15_r20/external/angle/build/config/siso/fuchsia.star (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# -*- bazel-starlark -*-
2*8975f5c5SAndroid Build Coastguard Worker# Copyright 2024 The Chromium Authors
3*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker"""Siso configuration for Fuchsia builds."""
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Workerload("@builtin//lib/gn.star", "gn")
8*8975f5c5SAndroid Build Coastguard Workerload("@builtin//struct.star", "module")
9*8975f5c5SAndroid Build Coastguard Workerload("./gn_logs.star", "gn_logs")
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Workerdef __enabled(ctx):
12*8975f5c5SAndroid Build Coastguard Worker    if "args.gn" in ctx.metadata:
13*8975f5c5SAndroid Build Coastguard Worker        gn_args = gn.args(ctx)
14*8975f5c5SAndroid Build Coastguard Worker        if gn_args.get("target_os") == '"fuchsia"':
15*8975f5c5SAndroid Build Coastguard Worker            return True
16*8975f5c5SAndroid Build Coastguard Worker    return False
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard Workerdef __filegroups(ctx):
19*8975f5c5SAndroid Build Coastguard Worker    gn_logs_data = gn_logs.read(ctx)
20*8975f5c5SAndroid Build Coastguard Worker    fuchsia_arch_root = gn_logs_data.get("fuchsia_arch_root")
21*8975f5c5SAndroid Build Coastguard Worker    fuchsia_legacy_arch_root = gn_logs_data.get("fuchsia_legacy_arch_root")
22*8975f5c5SAndroid Build Coastguard Worker    if not fuchsia_arch_root or not fuchsia_legacy_arch_root:
23*8975f5c5SAndroid Build Coastguard Worker        print("could not find fuchsia_arch_root or fuchsia_legacy_arch_root from gn_logs.txt")
24*8975f5c5SAndroid Build Coastguard Worker        return {}
25*8975f5c5SAndroid Build Coastguard Worker    fg = {
26*8975f5c5SAndroid Build Coastguard Worker        # The legacy directory is still used. But, will be removed soon.
27*8975f5c5SAndroid Build Coastguard Worker        fuchsia_legacy_arch_root + "/lib:libs": {
28*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
29*8975f5c5SAndroid Build Coastguard Worker            "includes": ["*.o", "*.a", "*.so"],
30*8975f5c5SAndroid Build Coastguard Worker        },
31*8975f5c5SAndroid Build Coastguard Worker        fuchsia_arch_root + "/sysroot:headers": {
32*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
33*8975f5c5SAndroid Build Coastguard Worker            "includes": ["*.h", "*.inc", "*.o"],
34*8975f5c5SAndroid Build Coastguard Worker        },
35*8975f5c5SAndroid Build Coastguard Worker        fuchsia_arch_root + "/sysroot:link": {
36*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
37*8975f5c5SAndroid Build Coastguard Worker            "includes": ["*.o", "*.a", "*.so"],
38*8975f5c5SAndroid Build Coastguard Worker        },
39*8975f5c5SAndroid Build Coastguard Worker        fuchsia_arch_root + "/lib:link": {
40*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
41*8975f5c5SAndroid Build Coastguard Worker            "includes": ["*.o", "*.a", "*.so"],
42*8975f5c5SAndroid Build Coastguard Worker        },
43*8975f5c5SAndroid Build Coastguard Worker    }
44*8975f5c5SAndroid Build Coastguard Worker    return fg
45*8975f5c5SAndroid Build Coastguard Worker
46*8975f5c5SAndroid Build Coastguard Workerfuchsia = module(
47*8975f5c5SAndroid Build Coastguard Worker    "fuchsia",
48*8975f5c5SAndroid Build Coastguard Worker    enabled = __enabled,
49*8975f5c5SAndroid Build Coastguard Worker    filegroups = __filegroups,
50*8975f5c5SAndroid Build Coastguard Worker)
51