xref: /aosp_15_r20/external/angle/build/config/siso/mac_sdk.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 mac sdk."""
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Workerload("@builtin//lib/gn.star", "gn")
8*8975f5c5SAndroid Build Coastguard Workerload("@builtin//runtime.star", "runtime")
9*8975f5c5SAndroid Build Coastguard Workerload("@builtin//struct.star", "module")
10*8975f5c5SAndroid Build Coastguard Workerload("./gn_logs.star", "gn_logs")
11*8975f5c5SAndroid Build Coastguard Worker
12*8975f5c5SAndroid Build Coastguard Workerdef __enabled(ctx):
13*8975f5c5SAndroid Build Coastguard Worker    if "args.gn" in ctx.metadata:
14*8975f5c5SAndroid Build Coastguard Worker        gn_args = gn.args(ctx)
15*8975f5c5SAndroid Build Coastguard Worker        if gn_args.get("target_os") in ('"mac"', '"ios"'):
16*8975f5c5SAndroid Build Coastguard Worker            return True
17*8975f5c5SAndroid Build Coastguard Worker    return runtime.os == "darwin"
18*8975f5c5SAndroid Build Coastguard Worker
19*8975f5c5SAndroid Build Coastguard Workerdef __filegroups(ctx):
20*8975f5c5SAndroid Build Coastguard Worker    sdk_includes = [
21*8975f5c5SAndroid Build Coastguard Worker        "*.framework",
22*8975f5c5SAndroid Build Coastguard Worker        "*.h",
23*8975f5c5SAndroid Build Coastguard Worker        "*.json",
24*8975f5c5SAndroid Build Coastguard Worker        "*.modulemap",
25*8975f5c5SAndroid Build Coastguard Worker        "Current",
26*8975f5c5SAndroid Build Coastguard Worker        "Frameworks",
27*8975f5c5SAndroid Build Coastguard Worker        "Headers",
28*8975f5c5SAndroid Build Coastguard Worker        "Modules",
29*8975f5c5SAndroid Build Coastguard Worker        "crt*.o",
30*8975f5c5SAndroid Build Coastguard Worker        "usr/include/c++/v1/*",
31*8975f5c5SAndroid Build Coastguard Worker        "usr/include/c++/v1/*/*",
32*8975f5c5SAndroid Build Coastguard Worker    ]
33*8975f5c5SAndroid Build Coastguard Worker    fg = {
34*8975f5c5SAndroid Build Coastguard Worker        "build/mac_files/xcode_binaries/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk:headers": {
35*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
36*8975f5c5SAndroid Build Coastguard Worker            "includes": sdk_includes,
37*8975f5c5SAndroid Build Coastguard Worker        },
38*8975f5c5SAndroid Build Coastguard Worker    }
39*8975f5c5SAndroid Build Coastguard Worker    if gn.args(ctx).get("use_remoteexec") == "true":
40*8975f5c5SAndroid Build Coastguard Worker        # precompute subtree for sysroot/frameworks for siso scandeps,
41*8975f5c5SAndroid Build Coastguard Worker        # which is not complex enough to handle C preprocessor tricks
42*8975f5c5SAndroid Build Coastguard Worker        # and need system include dirs when using deps log of -MMD.
43*8975f5c5SAndroid Build Coastguard Worker        # need to add new entries when new version is used.
44*8975f5c5SAndroid Build Coastguard Worker        #
45*8975f5c5SAndroid Build Coastguard Worker        # if use_remoteexec is not true, these dirs are not under exec root
46*8975f5c5SAndroid Build Coastguard Worker        # and failed to create filegroup for such dirs. crbug.com/352216756
47*8975f5c5SAndroid Build Coastguard Worker        gn_logs_data = gn_logs.read(ctx)
48*8975f5c5SAndroid Build Coastguard Worker        if gn_logs_data.get("mac_sdk_path"):
49*8975f5c5SAndroid Build Coastguard Worker            fg[ctx.fs.canonpath("./" + gn_logs_data.get("mac_sdk_path")) + ":headers"] = {
50*8975f5c5SAndroid Build Coastguard Worker                "type": "glob",
51*8975f5c5SAndroid Build Coastguard Worker                "includes": sdk_includes,
52*8975f5c5SAndroid Build Coastguard Worker            }
53*8975f5c5SAndroid Build Coastguard Worker            fg[ctx.fs.canonpath("./" + gn_logs_data.get("mac_sdk_path")) + ":link"] = {
54*8975f5c5SAndroid Build Coastguard Worker                "type": "glob",
55*8975f5c5SAndroid Build Coastguard Worker                "includes": [
56*8975f5c5SAndroid Build Coastguard Worker                    "*.framework",
57*8975f5c5SAndroid Build Coastguard Worker                    "*.o",
58*8975f5c5SAndroid Build Coastguard Worker                    "*.tbd",
59*8975f5c5SAndroid Build Coastguard Worker                    "Current",
60*8975f5c5SAndroid Build Coastguard Worker                    "Frameworks",
61*8975f5c5SAndroid Build Coastguard Worker                ],
62*8975f5c5SAndroid Build Coastguard Worker            }
63*8975f5c5SAndroid Build Coastguard Worker        if gn_logs_data.get("ios_sdk_path"):
64*8975f5c5SAndroid Build Coastguard Worker            fg[ctx.fs.canonpath("./" + gn_logs_data.get("ios_sdk_path")) + ":headers"] = {
65*8975f5c5SAndroid Build Coastguard Worker                "type": "glob",
66*8975f5c5SAndroid Build Coastguard Worker                "includes": sdk_includes,
67*8975f5c5SAndroid Build Coastguard Worker            }
68*8975f5c5SAndroid Build Coastguard Worker
69*8975f5c5SAndroid Build Coastguard Worker    fg[ctx.fs.canonpath("./sdk/xcode_links/iPhoneSimulator.platform/Developer/Library/Frameworks") + ":headers"] = {
70*8975f5c5SAndroid Build Coastguard Worker        "type": "glob",
71*8975f5c5SAndroid Build Coastguard Worker        "includes": sdk_includes,
72*8975f5c5SAndroid Build Coastguard Worker    }
73*8975f5c5SAndroid Build Coastguard Worker    return fg
74*8975f5c5SAndroid Build Coastguard Worker
75*8975f5c5SAndroid Build Coastguard Workermac_sdk = module(
76*8975f5c5SAndroid Build Coastguard Worker    "mac_sdk",
77*8975f5c5SAndroid Build Coastguard Worker    enabled = __enabled,
78*8975f5c5SAndroid Build Coastguard Worker    filegroups = __filegroups,
79*8975f5c5SAndroid Build Coastguard Worker)
80