xref: /aosp_15_r20/external/angle/build/config/siso/clang_all.star (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# -*- bazel-starlark -*-
2*8975f5c5SAndroid Build Coastguard Worker# Copyright 2023 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 clang."""
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Workerload("@builtin//struct.star", "module")
8*8975f5c5SAndroid Build Coastguard Workerload("./mac_sdk.star", "mac_sdk")
9*8975f5c5SAndroid Build Coastguard Workerload("./win_sdk.star", "win_sdk")
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Workerdef __filegroups(ctx):
12*8975f5c5SAndroid Build Coastguard Worker    fg = {
13*8975f5c5SAndroid Build Coastguard Worker        "third_party/libc++/src/include:headers": {
14*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
15*8975f5c5SAndroid Build Coastguard Worker            "includes": ["*"],
16*8975f5c5SAndroid Build Coastguard Worker            # can't use "*.h", because c++ headers have no extension.
17*8975f5c5SAndroid Build Coastguard Worker        },
18*8975f5c5SAndroid Build Coastguard Worker        "third_party/libc++abi/src/include:headers": {
19*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
20*8975f5c5SAndroid Build Coastguard Worker            "includes": ["*.h"],
21*8975f5c5SAndroid Build Coastguard Worker        },
22*8975f5c5SAndroid Build Coastguard Worker        # vendor provided headers for libc++.
23*8975f5c5SAndroid Build Coastguard Worker        "buildtools/third_party/libc++:headers": {
24*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
25*8975f5c5SAndroid Build Coastguard Worker            "includes": [
26*8975f5c5SAndroid Build Coastguard Worker                "__*",
27*8975f5c5SAndroid Build Coastguard Worker            ],
28*8975f5c5SAndroid Build Coastguard Worker        },
29*8975f5c5SAndroid Build Coastguard Worker
30*8975f5c5SAndroid Build Coastguard Worker        # toolchain root
31*8975f5c5SAndroid Build Coastguard Worker        # :headers for compiling
32*8975f5c5SAndroid Build Coastguard Worker        "third_party/llvm-build/Release+Asserts:headers": {
33*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
34*8975f5c5SAndroid Build Coastguard Worker            "includes": [
35*8975f5c5SAndroid Build Coastguard Worker                "*.h",
36*8975f5c5SAndroid Build Coastguard Worker                "bin/clang",
37*8975f5c5SAndroid Build Coastguard Worker                "bin/clang++",
38*8975f5c5SAndroid Build Coastguard Worker                "bin/clang-cl",
39*8975f5c5SAndroid Build Coastguard Worker                "bin/clang-cl.exe",
40*8975f5c5SAndroid Build Coastguard Worker                "*_ignorelist.txt",
41*8975f5c5SAndroid Build Coastguard Worker                # https://crbug.com/335997052
42*8975f5c5SAndroid Build Coastguard Worker                "clang_rt.profile*.lib",
43*8975f5c5SAndroid Build Coastguard Worker            ],
44*8975f5c5SAndroid Build Coastguard Worker        },
45*8975f5c5SAndroid Build Coastguard Worker        "third_party/cronet_android_mainline_clang/linux-amd64:headers": {
46*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
47*8975f5c5SAndroid Build Coastguard Worker            "includes": [
48*8975f5c5SAndroid Build Coastguard Worker                "*.h",
49*8975f5c5SAndroid Build Coastguard Worker                "bin/clang*",
50*8975f5c5SAndroid Build Coastguard Worker            ],
51*8975f5c5SAndroid Build Coastguard Worker        },
52*8975f5c5SAndroid Build Coastguard Worker        "third_party/cronet_android_mainline_clang/linux-amd64:link": {
53*8975f5c5SAndroid Build Coastguard Worker            "type": "glob",
54*8975f5c5SAndroid Build Coastguard Worker            "includes": [
55*8975f5c5SAndroid Build Coastguard Worker                "bin/clang*",
56*8975f5c5SAndroid Build Coastguard Worker                "bin/ld.lld",
57*8975f5c5SAndroid Build Coastguard Worker                "bin/lld",
58*8975f5c5SAndroid Build Coastguard Worker                "bin/llvm-nm",
59*8975f5c5SAndroid Build Coastguard Worker                "bin/llvm-objcopy",
60*8975f5c5SAndroid Build Coastguard Worker                "bin/llvm-readelf",
61*8975f5c5SAndroid Build Coastguard Worker                "bin/llvm-readobj",
62*8975f5c5SAndroid Build Coastguard Worker                "bin/llvm-strip",
63*8975f5c5SAndroid Build Coastguard Worker                "*.so",
64*8975f5c5SAndroid Build Coastguard Worker                "*.so.*",
65*8975f5c5SAndroid Build Coastguard Worker                "*.a",
66*8975f5c5SAndroid Build Coastguard Worker            ],
67*8975f5c5SAndroid Build Coastguard Worker        },
68*8975f5c5SAndroid Build Coastguard Worker    }
69*8975f5c5SAndroid Build Coastguard Worker    if win_sdk.enabled(ctx):
70*8975f5c5SAndroid Build Coastguard Worker        fg.update(win_sdk.filegroups(ctx))
71*8975f5c5SAndroid Build Coastguard Worker    if mac_sdk.enabled(ctx):
72*8975f5c5SAndroid Build Coastguard Worker        fg.update(mac_sdk.filegroups(ctx))
73*8975f5c5SAndroid Build Coastguard Worker    return fg
74*8975f5c5SAndroid Build Coastguard Worker
75*8975f5c5SAndroid Build Coastguard Worker__input_deps = {
76*8975f5c5SAndroid Build Coastguard Worker    # need this because we use
77*8975f5c5SAndroid Build Coastguard Worker    # third_party/libc++/src/include:headers,
78*8975f5c5SAndroid Build Coastguard Worker    # but scandeps doesn't scan `__config` file, which uses
79*8975f5c5SAndroid Build Coastguard Worker    # `#include <__config_site>`
80*8975f5c5SAndroid Build Coastguard Worker    # also need `__assertion_handler`. b/321171148
81*8975f5c5SAndroid Build Coastguard Worker    "third_party/libc++/src/include": [
82*8975f5c5SAndroid Build Coastguard Worker        "buildtools/third_party/libc++:headers",
83*8975f5c5SAndroid Build Coastguard Worker    ],
84*8975f5c5SAndroid Build Coastguard Worker    "third_party/llvm-build/Release+Asserts/bin/clang": [
85*8975f5c5SAndroid Build Coastguard Worker        "build/config/unsafe_buffers_paths.txt",
86*8975f5c5SAndroid Build Coastguard Worker    ],
87*8975f5c5SAndroid Build Coastguard Worker    "third_party/llvm-build/Release+Asserts/bin/clang++": [
88*8975f5c5SAndroid Build Coastguard Worker        "build/config/unsafe_buffers_paths.txt",
89*8975f5c5SAndroid Build Coastguard Worker    ],
90*8975f5c5SAndroid Build Coastguard Worker    "third_party/llvm-build/Release+Asserts/bin/clang-cl": [
91*8975f5c5SAndroid Build Coastguard Worker        "build/config/unsafe_buffers_paths.txt",
92*8975f5c5SAndroid Build Coastguard Worker    ],
93*8975f5c5SAndroid Build Coastguard Worker    "third_party/llvm-build/Release+Asserts/bin/clang-cl.exe": [
94*8975f5c5SAndroid Build Coastguard Worker        "build/config/unsafe_buffers_paths.txt",
95*8975f5c5SAndroid Build Coastguard Worker    ],
96*8975f5c5SAndroid Build Coastguard Worker    "build/toolchain/gcc_solink_wrapper.py": [
97*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/whole_archive.py",
98*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/wrapper_utils.py",
99*8975f5c5SAndroid Build Coastguard Worker    ],
100*8975f5c5SAndroid Build Coastguard Worker    "build/toolchain/gcc_solink_wrapper.py:link": [
101*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/gcc_solink_wrapper.py",
102*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/whole_archive.py",
103*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/wrapper_utils.py",
104*8975f5c5SAndroid Build Coastguard Worker    ],
105*8975f5c5SAndroid Build Coastguard Worker    "build/toolchain/gcc_link_wrapper.py": [
106*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/whole_archive.py",
107*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/wrapper_utils.py",
108*8975f5c5SAndroid Build Coastguard Worker    ],
109*8975f5c5SAndroid Build Coastguard Worker    "build/toolchain/gcc_link_wrapper.py:link": [
110*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/gcc_link_wrapper.py",
111*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/whole_archive.py",
112*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/wrapper_utils.py",
113*8975f5c5SAndroid Build Coastguard Worker    ],
114*8975f5c5SAndroid Build Coastguard Worker    "build/toolchain/apple/linker_driver.py:link": [
115*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/apple/linker_driver.py",
116*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/whole_archive.py",
117*8975f5c5SAndroid Build Coastguard Worker    ],
118*8975f5c5SAndroid Build Coastguard Worker    "build/toolchain/apple/solink_driver.py:link": [
119*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/apple/linker_driver.py",
120*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/apple/solink_driver.py",
121*8975f5c5SAndroid Build Coastguard Worker        "build/toolchain/whole_archive.py",
122*8975f5c5SAndroid Build Coastguard Worker    ],
123*8975f5c5SAndroid Build Coastguard Worker}
124*8975f5c5SAndroid Build Coastguard Worker
125*8975f5c5SAndroid Build Coastguard Workerclang_all = module(
126*8975f5c5SAndroid Build Coastguard Worker    "clang_all",
127*8975f5c5SAndroid Build Coastguard Worker    filegroups = __filegroups,
128*8975f5c5SAndroid Build Coastguard Worker    input_deps = __input_deps,
129*8975f5c5SAndroid Build Coastguard Worker)
130