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