brintos

brintos / llvm-project-archived public Read only

0
0
Text · 65.0 KiB · 0f256e6 Raw
2494 lines · plain
1# This file is licensed under the Apache License v2.0 with LLVM Exceptions.2# See https://llvm.org/LICENSE.txt for license information.3# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception4 5load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")6load("@rules_python//python:defs.bzl", "py_binary")7load(8    "//:vars.bzl",9    "LLVM_VERSION_MAJOR",10    "LLVM_VERSION_MINOR",11    "LLVM_VERSION_PATCH",12    "PACKAGE_VERSION",13)14load("//:workspace_root.bzl", "workspace_root")15load("//llvm:binary_alias.bzl", "binary_alias")16load("//llvm:cc_plugin_library.bzl", "cc_plugin_library")17load("//llvm:driver.bzl", "llvm_driver_cc_binary")18load("//mlir:tblgen.bzl", "gentbl_cc_library", "td_library")19 20package(21    default_visibility = ["//visibility:public"],22    features = ["layering_check"],23)24 25licenses(["notice"])26 27cc_binary(28    name = "clang-tblgen",29    srcs = glob([30        "utils/TableGen/*.cpp",31        "utils/TableGen/*.h",32    ]),33    copts = [34        "$(STACK_FRAME_UNLIMITED)",35    ],36    stamp = 0,37    deps = [38        ":support",39        "//llvm:Support",40        "//llvm:TableGen",41        "//llvm:config",42    ],43)44 45gentbl_cc_library(46    name = "diagnostic_defs_gen",47    tbl_outs = dict([out for c in [48        "AST",49        "Analysis",50        "Comment",51        "Common",52        "CrossTU",53        "Driver",54        "Frontend",55        "InstallAPI",56        "Lex",57        "Parse",58        "Refactoring",59        "Sema",60        "Serialization",61        "Trap",62    ] for out in [63        (64            "include/clang/Basic/Diagnostic%sKinds.inc" % c,65            [66                "-gen-clang-diags-defs",67                "-clang-component=%s" % c,68            ],69        ),70        (71            "include/clang/Basic/Diagnostic%sEnums.inc" % c,72            [73                "-gen-clang-diags-enums",74                "-clang-component=%s" % c,75            ],76        ),77        (78            "include/clang/Basic/Diagnostic%sCompatIDs.inc" % c,79            [80                "-gen-clang-diags-compat-ids",81                "-clang-component=%s" % c,82            ],83        ),84        (85            "include/clang/Basic/Diagnostic%sInterface.inc" % c,86            [87                "-gen-clang-diags-iface",88                "-clang-component=%s" % c,89            ],90        ),91    ]] + [92        (93            "include/clang/Basic/DiagnosticGroups.inc",94            ["-gen-clang-diag-groups"],95        ),96        (97            "include/clang/Basic/DiagnosticIndexName.inc",98            ["-gen-clang-diags-index-name"],99        ),100        (101            "include/clang/Basic/DiagnosticAllCompatIDs.inc",102            ["-gen-clang-diags-compat-ids"],103        ),104    ]),105    tblgen = ":clang-tblgen",106    td_file = "include/clang/Basic/Diagnostic.td",107    deps = [":BasicTdFiles"],108)109 110td_library(111    name = "ArmTdFiles",112    srcs = [113        "include/clang/Basic/arm_immcheck_incl.td",114        "include/clang/Basic/arm_mve_defs.td",115        "include/clang/Basic/arm_neon_incl.td",116        "include/clang/Basic/arm_sve_sme_incl.td",117    ],118    includes = ["include"],119)120 121gentbl_cc_library(122    name = "basic_arm_neon_inc_gen",123    tbl_outs = {"include/clang/Basic/arm_neon.inc": ["-gen-arm-neon-sema"]},124    tblgen = ":clang-tblgen",125    td_file = "include/clang/Basic/arm_neon.td",126    deps = [":ArmTdFiles"],127)128 129gentbl_cc_library(130    name = "basic_arm_fp16_inc_gen",131    tbl_outs = {"include/clang/Basic/arm_fp16.inc": ["-gen-arm-neon-sema"]},132    tblgen = ":clang-tblgen",133    td_file = "include/clang/Basic/arm_fp16.td",134    deps = [":ArmTdFiles"],135)136 137gentbl_cc_library(138    name = "basic_arm_mve_aliases_gen",139    tbl_outs = {"include/clang/Basic/arm_mve_builtin_aliases.inc": ["-gen-arm-mve-builtin-aliases"]},140    tblgen = ":clang-tblgen",141    td_file = "include/clang/Basic/arm_mve.td",142    deps = [":ArmTdFiles"],143)144 145gentbl_cc_library(146    name = "basic_arm_sve_builtins_gen",147    tbl_outs = {"include/clang/Basic/arm_sve_builtins.inc": ["-gen-arm-sve-builtins"]},148    tblgen = ":clang-tblgen",149    td_file = "include/clang/Basic/arm_sve.td",150    deps = [":ArmTdFiles"],151)152 153gentbl_cc_library(154    name = "basic_arm_sve_builtin_cg_gen",155    tbl_outs = {"include/clang/Basic/arm_sve_builtin_cg.inc": ["-gen-arm-sve-builtin-codegen"]},156    tblgen = ":clang-tblgen",157    td_file = "include/clang/Basic/arm_sve.td",158    deps = [":ArmTdFiles"],159)160 161gentbl_cc_library(162    name = "basic_arm_sve_immcheck_types_gen",163    tbl_outs = {"include/clang/Basic/arm_immcheck_types.inc": ["-gen-arm-immcheck-types"]},164    tblgen = ":clang-tblgen",165    td_file = "include/clang/Basic/arm_sve.td",166    deps = [":ArmTdFiles"],167)168 169gentbl_cc_library(170    name = "basic_arm_sve_typeflags_gen",171    tbl_outs = {"include/clang/Basic/arm_sve_typeflags.inc": ["-gen-arm-sve-typeflags"]},172    tblgen = ":clang-tblgen",173    td_file = "include/clang/Basic/arm_sve.td",174    deps = [":ArmTdFiles"],175)176 177gentbl_cc_library(178    name = "basic_arm_sve_sema_rangechecks_gen",179    tbl_outs = {"include/clang/Basic/arm_sve_sema_rangechecks.inc": ["-gen-arm-sve-sema-rangechecks"]},180    tblgen = ":clang-tblgen",181    td_file = "include/clang/Basic/arm_sve.td",182    deps = [":ArmTdFiles"],183)184 185gentbl_cc_library(186    name = "basic_arm_sve_streaming_attrs_gen",187    tbl_outs = {"include/clang/Basic/arm_sve_streaming_attrs.inc": ["-gen-arm-sve-streaming-attrs"]},188    tblgen = ":clang-tblgen",189    td_file = "include/clang/Basic/arm_sve.td",190    deps = [":ArmTdFiles"],191)192 193gentbl_cc_library(194    name = "basic_arm_sme_builtins_gen",195    tbl_outs = {"include/clang/Basic/arm_sme_builtins.inc": ["-gen-arm-sme-builtins"]},196    tblgen = ":clang-tblgen",197    td_file = "include/clang/Basic/arm_sme.td",198    deps = [":ArmTdFiles"],199)200 201gentbl_cc_library(202    name = "basic_arm_sme_builtin_cg_gen",203    tbl_outs = {"include/clang/Basic/arm_sme_builtin_cg.inc": ["-gen-arm-sme-builtin-codegen"]},204    tblgen = ":clang-tblgen",205    td_file = "include/clang/Basic/arm_sme.td",206    deps = [":ArmTdFiles"],207)208 209gentbl_cc_library(210    name = "basic_arm_sme_builtins_za_state_gen",211    tbl_outs = {"include/clang/Basic/arm_sme_builtins_za_state.inc": ["-gen-arm-sme-builtin-za-state"]},212    tblgen = ":clang-tblgen",213    td_file = "include/clang/Basic/arm_sme.td",214    deps = [":ArmTdFiles"],215)216 217gentbl_cc_library(218    name = "basic_arm_sme_sema_rangechecks_gen",219    tbl_outs = {"include/clang/Basic/arm_sme_sema_rangechecks.inc": ["-gen-arm-sme-sema-rangechecks"]},220    tblgen = ":clang-tblgen",221    td_file = "include/clang/Basic/arm_sme.td",222    deps = [":ArmTdFiles"],223)224 225gentbl_cc_library(226    name = "basic_arm_sme_streaming_attrs_gen",227    tbl_outs = {"include/clang/Basic/arm_sme_streaming_attrs.inc": ["-gen-arm-sme-streaming-attrs"]},228    tblgen = ":clang-tblgen",229    td_file = "include/clang/Basic/arm_sme.td",230    deps = [":ArmTdFiles"],231)232 233gentbl_cc_library(234    name = "basic_arm_mve_cg_gen",235    tbl_outs = {"include/clang/Basic/arm_mve_builtin_cg.inc": ["-gen-arm-mve-builtin-codegen"]},236    tblgen = ":clang-tblgen",237    td_file = "include/clang/Basic/arm_mve.td",238    deps = [":ArmTdFiles"],239)240 241gentbl_cc_library(242    name = "basic_arm_mve_inc_gen",243    tbl_outs = {"include/clang/Basic/arm_mve_builtins.inc": ["-gen-arm-mve-builtin-def"]},244    tblgen = ":clang-tblgen",245    td_file = "include/clang/Basic/arm_mve.td",246    deps = [":ArmTdFiles"],247)248 249gentbl_cc_library(250    name = "basic_arm_mve_sema_gen",251    tbl_outs = {"include/clang/Basic/arm_mve_builtin_sema.inc": ["-gen-arm-mve-builtin-sema"]},252    tblgen = ":clang-tblgen",253    td_file = "include/clang/Basic/arm_mve.td",254    deps = [":ArmTdFiles"],255)256 257td_library(258    name = "BuiltinsBaseTdFiles",259    srcs = ["include/clang/Basic/BuiltinsBase.td"],260    includes = ["include"],261)262 263td_library(264    name = "BuiltinsSPIRVBaseTdFiles",265    srcs = ["include/clang/Basic/BuiltinsSPIRVBase.td"],266    includes = ["include"],267)268 269td_library(270    name = "BuiltinsRISCVXCVTdFiles",271    srcs = ["include/clang/Basic/BuiltinsRISCVXCV.td"],272    includes = ["include"],273)274 275td_library(276    name = "BuiltinsRISCVXAndesTdFiles",277    srcs = ["include/clang/Basic/BuiltinsRISCVXAndes.td"],278    includes = ["include"],279)280 281td_library(282    name = "BuiltinsRISCVXMIPSTdFiles",283    srcs = ["include/clang/Basic/BuiltinsRISCVXMIPS.td"],284    includes = ["include"],285)286 287td_library(288    name = "BuiltinsX86BaseTdFiles",289    srcs = ["include/clang/Basic/BuiltinsX86Base.td"],290    includes = ["include"],291)292 293gentbl_cc_library(294    name = "basic_builtins_bpf_gen",295    tbl_outs = {"include/clang/Basic/BuiltinsBPF.inc": ["-gen-clang-builtins"]},296    tblgen = ":clang-tblgen",297    td_file = "include/clang/Basic/BuiltinsBPF.td",298    deps = [":BuiltinsBaseTdFiles"],299)300 301gentbl_cc_library(302    name = "basic_builtins_hexagon_gen",303    tbl_outs = {"include/clang/Basic/BuiltinsHexagon.inc": ["-gen-clang-builtins"]},304    tblgen = ":clang-tblgen",305    td_file = "include/clang/Basic/BuiltinsHexagon.td",306    deps = [":BuiltinsBaseTdFiles"],307)308 309gentbl_cc_library(310    name = "basic_builtins_nvptx_gen",311    tbl_outs = {"include/clang/Basic/BuiltinsNVPTX.inc": ["-gen-clang-builtins"]},312    tblgen = ":clang-tblgen",313    td_file = "include/clang/Basic/BuiltinsNVPTX.td",314    deps = [":BuiltinsBaseTdFiles"],315)316 317gentbl_cc_library(318    name = "basic_builtins_directx_gen",319    tbl_outs = {"include/clang/Basic/BuiltinsDirectX.inc": ["-gen-clang-builtins"]},320    tblgen = ":clang-tblgen",321    td_file = "include/clang/Basic/BuiltinsDirectX.td",322    deps = [":BuiltinsBaseTdFiles"],323)324 325gentbl_cc_library(326    name = "basic_builtins_spirv_cl_gen",327    tbl_outs = {"include/clang/Basic/BuiltinsSPIRVCL.inc": ["-gen-clang-builtins"]},328    tblgen = ":clang-tblgen",329    td_file = "include/clang/Basic/BuiltinsSPIRVCL.td",330    deps = [331        ":BuiltinsBaseTdFiles",332        ":BuiltinsSPIRVBaseTdFiles",333    ],334)335 336gentbl_cc_library(337    name = "basic_builtins_spirv_common_gen",338    tbl_outs = {"include/clang/Basic/BuiltinsSPIRVCommon.inc": ["-gen-clang-builtins"]},339    tblgen = ":clang-tblgen",340    td_file = "include/clang/Basic/BuiltinsSPIRVCommon.td",341    deps = [342        ":BuiltinsBaseTdFiles",343        ":BuiltinsSPIRVBaseTdFiles",344    ],345)346 347gentbl_cc_library(348    name = "basic_builtins_spirv_vk_gen",349    tbl_outs = {"include/clang/Basic/BuiltinsSPIRVVK.inc": ["-gen-clang-builtins"]},350    tblgen = ":clang-tblgen",351    td_file = "include/clang/Basic/BuiltinsSPIRVVK.td",352    deps = [353        ":BuiltinsBaseTdFiles",354        ":BuiltinsSPIRVBaseTdFiles",355    ],356)357 358gentbl_cc_library(359    name = "basic_builtins_riscv_gen",360    tbl_outs = {"include/clang/Basic/BuiltinsRISCV.inc": ["-gen-clang-builtins"]},361    tblgen = ":clang-tblgen",362    td_file = "include/clang/Basic/BuiltinsRISCV.td",363    deps = [364        ":BuiltinsBaseTdFiles",365        ":BuiltinsRISCVXAndesTdFiles",366        ":BuiltinsRISCVXCVTdFiles",367        ":BuiltinsRISCVXMIPSTdFiles",368    ],369)370 371gentbl_cc_library(372    name = "basic_builtins_x86_gen",373    tbl_outs = {"include/clang/Basic/BuiltinsX86.inc": ["-gen-clang-builtins"]},374    tblgen = ":clang-tblgen",375    td_file = "include/clang/Basic/BuiltinsX86.td",376    deps = [377        ":BuiltinsBaseTdFiles",378        ":BuiltinsX86BaseTdFiles",379    ],380)381 382gentbl_cc_library(383    name = "basic_builtins_x86_64_gen",384    tbl_outs = {"include/clang/Basic/BuiltinsX86_64.inc": ["-gen-clang-builtins"]},385    tblgen = ":clang-tblgen",386    td_file = "include/clang/Basic/BuiltinsX86_64.td",387    deps = [388        ":BuiltinsBaseTdFiles",389        ":BuiltinsX86BaseTdFiles",390    ],391)392 393gentbl_cc_library(394    name = "basic_builtins_gen",395    tbl_outs = {"include/clang/Basic/Builtins.inc": ["-gen-clang-builtins"]},396    tblgen = ":clang-tblgen",397    td_file = "include/clang/Basic/Builtins.td",398    deps = [":BuiltinsBaseTdFiles"],399)400 401gentbl_cc_library(402    name = "basic_builtin_templates_gen",403    tbl_outs = {"include/clang/Basic/BuiltinTemplates.inc": ["-gen-clang-builtin-templates"]},404    tblgen = ":clang-tblgen",405    td_file = "include/clang/Basic/BuiltinTemplates.td",406    deps = [407        ":BuiltinsBaseTdFiles",408    ],409)410 411td_library(412    name = "RiscvTdFiles",413    srcs = [414        "include/clang/Basic/riscv_vector_common.td",415    ],416    includes = ["include"],417)418 419gentbl_cc_library(420    name = "basic_riscv_vector_builtins_gen",421    tbl_outs = {"include/clang/Basic/riscv_vector_builtins.inc": ["-gen-riscv-vector-builtins"]},422    tblgen = ":clang-tblgen",423    td_file = "include/clang/Basic/riscv_vector.td",424    deps = [":RiscvTdFiles"],425)426 427gentbl_cc_library(428    name = "basic_riscv_vector_builtin_cg_gen",429    tbl_outs = {"include/clang/Basic/riscv_vector_builtin_cg.inc": ["-gen-riscv-vector-builtin-codegen"]},430    tblgen = ":clang-tblgen",431    td_file = "include/clang/Basic/riscv_vector.td",432    deps = [":RiscvTdFiles"],433)434 435gentbl_cc_library(436    name = "basic_riscv_vector_builtin_sema_gen",437    tbl_outs = {"include/clang/Basic/riscv_vector_builtin_sema.inc": ["-gen-riscv-vector-builtin-sema"]},438    tblgen = ":clang-tblgen",439    td_file = "include/clang/Basic/riscv_vector.td",440    deps = [":RiscvTdFiles"],441)442 443gentbl_cc_library(444    name = "basic_riscv_sifive_vector_builtins_gen",445    tbl_outs = {"include/clang/Basic/riscv_sifive_vector_builtins.inc": ["-gen-riscv-sifive-vector-builtins"]},446    tblgen = ":clang-tblgen",447    td_file = "include/clang/Basic/riscv_sifive_vector.td",448    deps = [":RiscvTdFiles"],449)450 451gentbl_cc_library(452    name = "basic_riscv_sifive_vector_builtin_cg_gen",453    tbl_outs = {"include/clang/Basic/riscv_sifive_vector_builtin_cg.inc": ["-gen-riscv-sifive-vector-builtin-codegen"]},454    tblgen = ":clang-tblgen",455    td_file = "include/clang/Basic/riscv_sifive_vector.td",456    deps = [":RiscvTdFiles"],457)458 459gentbl_cc_library(460    name = "basic_riscv_sifive_vector_builtin_sema_gen",461    tbl_outs = {"include/clang/Basic/riscv_sifive_vector_builtin_sema.inc": ["-gen-riscv-sifive-vector-builtin-sema"]},462    tblgen = ":clang-tblgen",463    td_file = "include/clang/Basic/riscv_sifive_vector.td",464    deps = [":RiscvTdFiles"],465)466 467gentbl_cc_library(468    name = "basic_riscv_andes_vector_builtins_gen",469    tbl_outs = {"include/clang/Basic/riscv_andes_vector_builtins.inc": ["-gen-riscv-andes-vector-builtins"]},470    tblgen = ":clang-tblgen",471    td_file = "include/clang/Basic/riscv_andes_vector.td",472    deps = [":RiscvTdFiles"],473)474 475gentbl_cc_library(476    name = "basic_riscv_andes_vector_builtin_cg_gen",477    tbl_outs = {"include/clang/Basic/riscv_andes_vector_builtin_cg.inc": ["-gen-riscv-andes-vector-builtin-codegen"]},478    tblgen = ":clang-tblgen",479    td_file = "include/clang/Basic/riscv_andes_vector.td",480    deps = [":RiscvTdFiles"],481)482 483gentbl_cc_library(484    name = "basic_riscv_andes_vector_builtin_sema_gen",485    tbl_outs = {"include/clang/Basic/riscv_andes_vector_builtin_sema.inc": ["-gen-riscv-andes-vector-builtin-sema"]},486    tblgen = ":clang-tblgen",487    td_file = "include/clang/Basic/riscv_andes_vector.td",488    deps = [":RiscvTdFiles"],489)490 491gentbl_cc_library(492    name = "basic_arm_cde_gen",493    tbl_outs = {"include/clang/Basic/arm_cde_builtins.inc": ["-gen-arm-cde-builtin-def"]},494    tblgen = ":clang-tblgen",495    td_file = "include/clang/Basic/arm_cde.td",496    deps = [":ArmTdFiles"],497)498 499gentbl_cc_library(500    name = "basic_arm_cde_aliases_gen",501    tbl_outs = {"include/clang/Basic/arm_cde_builtin_aliases.inc": ["-gen-arm-cde-builtin-aliases"]},502    tblgen = ":clang-tblgen",503    td_file = "include/clang/Basic/arm_cde.td",504    deps = [":ArmTdFiles"],505)506 507gentbl_cc_library(508    name = "basic_arm_cde_cg_gen",509    tbl_outs = {"include/clang/Basic/arm_cde_builtin_cg.inc": ["-gen-arm-cde-builtin-codegen"]},510    tblgen = ":clang-tblgen",511    td_file = "include/clang/Basic/arm_cde.td",512    deps = [":ArmTdFiles"],513)514 515gentbl_cc_library(516    name = "basic_arm_cde_sema_gen",517    tbl_outs = {"include/clang/Basic/arm_cde_builtin_sema.inc": ["-gen-arm-cde-builtin-sema"]},518    tblgen = ":clang-tblgen",519    td_file = "include/clang/Basic/arm_cde.td",520    deps = [":ArmTdFiles"],521)522 523td_library(524    name = "ASTNodeTdFiles",525    srcs = ["include/clang/Basic/ASTNode.td"],526    includes = ["include"],527)528 529td_library(530    name = "BasicCoreTdFiles",531    srcs = [532        "include/clang/Basic/AttrDocs.td",533        "include/clang/Basic/DeclNodes.td",534        "include/clang/Basic/StmtNodes.td",535    ],536    includes = ["include"],537    deps = [":ASTNodeTdFiles"],538)539 540td_library(541    name = "BasicTdFiles",542    srcs = glob(["include/clang/Basic/*.td"]),543    includes = ["include"],544)545 546gentbl_cc_library(547    name = "basic_attr_gen",548    tbl_outs = {549        "include/clang/Basic/AttrHasAttributeImpl.inc": ["-gen-clang-attr-has-attribute-impl"],550        "include/clang/Basic/AttrList.inc": ["-gen-clang-attr-list"],551        "include/clang/Basic/AttrParsedAttrList.inc": ["-gen-clang-attr-parsed-attr-list"],552        "include/clang/Basic/AttrSubMatchRulesList.inc": ["-gen-clang-attr-subject-match-rule-list"],553        "include/clang/Basic/AttributeSpellingList.inc": ["-gen-attribute-spelling-list"],554        "include/clang/Basic/RegularKeywordAttrInfo.inc": ["-gen-clang-regular-keyword-attr-info"],555        "include/clang/Basic/CXX11AttributeInfo.inc": ["-gen-cxx11-attribute-info"],556    },557    tblgen = ":clang-tblgen",558    td_file = "include/clang/Basic/Attr.td",559    deps = [":BasicCoreTdFiles"],560)561 562gentbl_cc_library(563    name = "libsema_openclbuiltins_inc_gen",564    strip_include_prefix = "lib/Sema",565    tbl_outs = {"lib/Sema/OpenCLBuiltins.inc": ["-gen-clang-opencl-builtins"]},566    tblgen = ":clang-tblgen",567    td_file = "lib/Sema/OpenCLBuiltins.td",568)569 570# Table definition files can be used for documentation:571filegroup(572    name = "all_table_defs",573    srcs = glob(["include/**/*.td"]),574)575 576exports_files(577    glob(["include/**/*.td"]),578)579 580genrule(581    name = "basic_version_gen",582    outs = ["include/clang/Basic/Version.inc"],583    cmd = (584        "echo '#define CLANG_VERSION {vers}' >> $@\n" +585        "echo '#define CLANG_VERSION_MAJOR {major}' >> $@\n" +586        "echo '#define CLANG_VERSION_MAJOR_STRING \"{major}\"' >> $@\n" +587        "echo '#define CLANG_VERSION_MINOR {minor}' >> $@\n" +588        "echo '#define CLANG_VERSION_PATCHLEVEL {patch}' >> $@\n" +589        "echo '#define MAX_CLANG_ABI_COMPAT_VERSION {major}' >> $@\n" +590        "echo '#define CLANG_VERSION_STRING \"{vers}\"' >> $@\n"591    ).format(592        major = LLVM_VERSION_MAJOR,593        minor = LLVM_VERSION_MINOR,594        patch = LLVM_VERSION_PATCH,595        vers = PACKAGE_VERSION,596    ),597)598 599cc_library(600    name = "config",601    hdrs = [602        "include/clang/Basic/Version.inc",603        "include/clang/Config/config.h",604    ],605    includes = ["include"],606    deps = [607        # We rely on the LLVM config library to provide configuration defines.608        "//llvm:config",609    ],610)611 612# TODO: This should get replaced with something that actually generates the613# correct version number.614genrule(615    name = "vcs_version_gen",616    # This should be under lib/Basic, but because of how the include paths617    # are passed through bazel, it's easier to drop generated files next to618    # the other includes.619    outs = ["include/VCSVersion.inc"],620    cmd = "echo '#undef CLANG_REVISION' > $@",621)622 623py_binary(624    name = "bundle_resources",625    srcs = [626        "utils/bundle_resources.py",627    ],628    main = "utils/bundle_resources.py",629)630 631cc_library(632    name = "basic",633    srcs = [634        "include/VCSVersion.inc",635        "include/clang/Basic/Version.inc",636    ] + glob([637        "lib/Basic/*.cpp",638        "lib/Basic/*.h",639        "lib/Basic/Targets/*.cpp",640        "lib/Basic/Targets/*.h",641    ]),642    hdrs = glob([643        "include/clang/Basic/*.h",644    ]),645    copts = [646        "-DHAVE_VCS_VERSION_INC",647        "$(STACK_FRAME_UNLIMITED)",648        "-I$(WORKSPACE_ROOT)/clang/lib/Basic",649    ],650    includes = ["include"],651    textual_hdrs = [652        # keep sorted653        "include/clang/Basic/AllDiagnosticKinds.inc",654        "include/clang/Basic/AttrHasAttributeImpl.inc",655        "include/clang/Basic/AttrList.inc",656        "include/clang/Basic/AttrSubMatchRulesList.inc",657        "include/clang/Basic/BuiltinTemplates.inc",658        "include/clang/Basic/DiagnosticASTKinds.inc",659        "include/clang/Basic/DiagnosticAnalysisKinds.inc",660        "include/clang/Basic/DiagnosticCommentKinds.inc",661        "include/clang/Basic/DiagnosticCommonKinds.inc",662        "include/clang/Basic/DiagnosticCrossTUKinds.inc",663        "include/clang/Basic/DiagnosticDriverKinds.inc",664        "include/clang/Basic/DiagnosticFrontendKinds.inc",665        "include/clang/Basic/DiagnosticGroups.inc",666        "include/clang/Basic/DiagnosticIndexName.inc",667        "include/clang/Basic/DiagnosticInstallAPIKinds.inc",668        "include/clang/Basic/DiagnosticLexKinds.inc",669        "include/clang/Basic/DiagnosticParseKinds.inc",670        "include/clang/Basic/DiagnosticRefactoringKinds.inc",671        "include/clang/Basic/DiagnosticSemaKinds.inc",672        "include/clang/Basic/DiagnosticSerializationKinds.inc",673        "include/clang/Basic/arm_fp16.inc",674        "include/clang/Basic/arm_immcheck_types.inc",675        "include/clang/Basic/arm_mve_builtin_aliases.inc",676        "include/clang/Basic/arm_mve_builtin_cg.inc",677        "include/clang/Basic/arm_mve_builtin_sema.inc",678        "include/clang/Basic/arm_mve_builtins.inc",679        "include/clang/Basic/arm_neon.inc",680        "include/clang/Basic/arm_sme_builtin_cg.inc",681        "include/clang/Basic/arm_sme_builtins.inc",682    ] + glob([683        "include/clang/Basic/*.def",684    ]),685    toolchains = [":workspace_root"],686    deps = [687        ":basic_arm_cde_gen",688        ":basic_arm_fp16_inc_gen",689        ":basic_arm_mve_aliases_gen",690        ":basic_arm_mve_cg_gen",691        ":basic_arm_mve_inc_gen",692        ":basic_arm_mve_sema_gen",693        ":basic_arm_neon_inc_gen",694        ":basic_arm_sme_builtin_cg_gen",695        ":basic_arm_sme_builtins_gen",696        ":basic_arm_sve_builtins_gen",697        ":basic_arm_sve_typeflags_gen",698        ":basic_attr_gen",699        ":basic_builtin_templates_gen",700        ":basic_builtins_bpf_gen",701        ":basic_builtins_directx_gen",702        ":basic_builtins_gen",703        ":basic_builtins_hexagon_gen",704        ":basic_builtins_nvptx_gen",705        ":basic_builtins_riscv_gen",706        ":basic_builtins_spirv_cl_gen",707        ":basic_builtins_spirv_common_gen",708        ":basic_builtins_spirv_vk_gen",709        ":basic_builtins_x86_64_gen",710        ":basic_builtins_x86_gen",711        ":basic_riscv_andes_vector_builtins_gen",712        ":basic_riscv_sifive_vector_builtins_gen",713        ":basic_riscv_vector_builtin_cg_gen",714        ":basic_riscv_vector_builtins_gen",715        ":config",716        ":diagnostic_defs_gen",717        ":sema_attr_gen",718        ":support",719        "//llvm:BinaryFormat",720        "//llvm:Core",721        "//llvm:FrontendDebug",722        "//llvm:FrontendDriver",723        "//llvm:FrontendOpenMP",724        "//llvm:Instrumentation",725        "//llvm:MC",726        "//llvm:Support",727        "//llvm:Target",728        "//llvm:TargetParser",729        "//llvm:config",730    ],731)732 733cc_library(734    name = "lex",735    srcs = glob([736        "lib/Lex/*.cpp",737        "lib/Lex/*.h",738    ]),739    hdrs = glob([740        "include/clang/Lex/*.h",741    ]),742    includes = ["include"],743    textual_hdrs = glob([744        "include/clang/Lex/*.def",745    ]),746    deps = [747        ":basic",748        ":config",749        ":support",750        "//llvm:Support",751        "//llvm:TargetParser",752    ],753)754 755gentbl_cc_library(756    name = "ast_attr_gen",757    tbl_outs = {758        "include/clang/AST/AttrVisitor.inc": ["-gen-clang-attr-ast-visitor"],759        "include/clang/AST/Attrs.inc": ["-gen-clang-attr-classes"],760        "include/clang/AST/AttrTextNodeDump.inc": ["-gen-clang-attr-text-node-dump"],761        "include/clang/AST/AttrNodeTraverse.inc": ["-gen-clang-attr-node-traverse"],762        "include/clang/AST/AttrImpl.inc": ["-gen-clang-attr-impl"],763    },764    tblgen = ":clang-tblgen",765    td_file = "include/clang/Basic/Attr.td",766    deps = [":BasicCoreTdFiles"],767)768 769gentbl_cc_library(770    name = "ast_attr_doc_table_gen",771    strip_include_prefix = "lib/AST",772    tbl_outs = {"lib/AST/AttrDocTable.inc": ["-gen-clang-attr-doc-table"]},773    tblgen = ":clang-tblgen",774    td_file = "include/clang/Basic/Attr.td",775    deps = [":BasicCoreTdFiles"],776)777 778gentbl_cc_library(779    name = "ast_decl_nodes_gen",780    tbl_outs = {"include/clang/AST/DeclNodes.inc": ["-gen-clang-decl-nodes"]},781    tblgen = ":clang-tblgen",782    td_file = "include/clang/Basic/DeclNodes.td",783    deps = [":ASTNodeTdFiles"],784)785 786gentbl_cc_library(787    name = "ast_stmt_nodes_gen",788    tbl_outs = {"include/clang/AST/StmtNodes.inc": ["-gen-clang-stmt-nodes"]},789    tblgen = ":clang-tblgen",790    td_file = "include/clang/Basic/StmtNodes.td",791    deps = [":ASTNodeTdFiles"],792)793 794gentbl_cc_library(795    name = "ast_comment_nodes_gen",796    tbl_outs = {"include/clang/AST/CommentNodes.inc": ["-gen-clang-comment-nodes"]},797    tblgen = ":clang-tblgen",798    td_file = "include/clang/Basic/CommentNodes.td",799    deps = [":ASTNodeTdFiles"],800)801 802gentbl_cc_library(803    name = "ast_comment_command_info_gen",804    tbl_outs = {805        "include/clang/AST/CommentCommandInfo.inc": ["-gen-clang-comment-command-info"],806        "include/clang/AST/CommentCommandList.inc": ["-gen-clang-comment-command-list"],807    },808    tblgen = ":clang-tblgen",809    td_file = "include/clang/AST/CommentCommands.td",810)811 812gentbl_cc_library(813    name = "ast_comment_html_tags_gen",814    tbl_outs = {"include/clang/AST/CommentHTMLTags.inc": ["-gen-clang-comment-html-tags"]},815    tblgen = ":clang-tblgen",816    td_file = "include/clang/AST/CommentHTMLTags.td",817)818 819gentbl_cc_library(820    name = "ast_comment_html_tags_properties_gen",821    tbl_outs = {"include/clang/AST/CommentHTMLTagsProperties.inc": ["-gen-clang-comment-html-tags-properties"]},822    tblgen = ":clang-tblgen",823    td_file = "include/clang/AST/CommentHTMLTags.td",824)825 826gentbl_cc_library(827    name = "ast_comment_html_named_character_references_gen",828    tbl_outs = {"include/clang/AST/CommentHTMLNamedCharacterReferences.inc": ["-gen-clang-comment-html-named-character-references"]},829    tblgen = ":clang-tblgen",830    td_file = "include/clang/AST/CommentHTMLNamedCharacterReferences.td",831)832 833gentbl_cc_library(834    name = "ast_stmt_data_collectors_gen",835    tbl_outs = {"include/clang/AST/StmtDataCollectors.inc": ["-gen-clang-data-collectors"]},836    tblgen = ":clang-tblgen",837    td_file = "include/clang/AST/StmtDataCollectors.td",838)839 840gentbl_cc_library(841    name = "ast_bytecode_opcodes_gen",842    strip_include_prefix = "lib/AST/ByteCode",843    tbl_outs = {"lib/AST/ByteCode/Opcodes.inc": ["-gen-clang-opcodes"]},844    tblgen = ":clang-tblgen",845    td_file = "lib/AST/ByteCode/Opcodes.td",846)847 848gentbl_cc_library(849    name = "ast_properties_base_gen",850    tbl_outs = {851        "include/clang/AST/AbstractBasicReader.inc": ["-gen-clang-basic-reader"],852        "include/clang/AST/AbstractBasicWriter.inc": ["-gen-clang-basic-writer"],853    },854    tblgen = ":clang-tblgen",855    td_file = "include/clang/AST/PropertiesBase.td",856)857 858gentbl_cc_library(859    name = "ast_type_properties_gen",860    tbl_outs = {861        "include/clang/AST/AbstractTypeReader.inc": ["-gen-clang-type-reader"],862        "include/clang/AST/AbstractTypeWriter.inc": ["-gen-clang-type-writer"],863    },864    tblgen = ":clang-tblgen",865    td_file = "include/clang/AST/TypeProperties.td",866    td_srcs = [867        "include/clang/AST/PropertiesBase.td",868        "include/clang/Basic/TypeNodes.td",869    ],870    deps = [":ASTNodeTdFiles"],871)872 873gentbl_cc_library(874    name = "type_nodes_gen",875    tbl_outs = {"include/clang/AST/TypeNodes.inc": ["-gen-clang-type-nodes"]},876    tblgen = ":clang-tblgen",877    td_file = "include/clang/Basic/TypeNodes.td",878    deps = [":ASTNodeTdFiles"],879)880 881workspace_root(name = "workspace_root")882 883cc_library(884    name = "ast",885    srcs = glob([886        "lib/AST/*.cpp",887        "lib/AST/*.h",888        "lib/AST/ByteCode/*.cpp",889        "lib/AST/ByteCode/*.h",890    ]) + [891        "lib/AST/AttrDocTable.inc",892        "lib/AST/ByteCode/Opcodes.inc",893    ],894    hdrs = glob([895        "include/clang/AST/*.h",896    ]),897    copts = [898        # FIXME: This is necessary to allow "file relative" include paths from899        # non-generated `srcs` to find generated `srcs` above. Bazel should900        # either make this work automatically by creating a unified tree of901        # `srcs` or at least provide a `local_includes` that has the path902        # translation logic of `includes` but is only used locally (similar to903        # `local_defines` vs. `defines`). Until one of those lands, this is the904        # least bad approach. Using `includes` is *specifically* problematic for905        # this library because it contains files that collide easily with system906        # headers such as `CXXABI.h`.907        "-I$(GENDIR)/$(WORKSPACE_ROOT)/clang/lib/AST",908        "-I$(GENDIR)/$(WORKSPACE_ROOT)/clang/lib/AST/ByteCode",909    ],910    textual_hdrs = [911        "include/clang/AST/AttrImpl.inc",912        "include/clang/AST/AttrNodeTraverse.inc",913        "include/clang/AST/Attrs.inc",914        "include/clang/AST/AttrTextNodeDump.inc",915        "include/clang/AST/AttrVisitor.inc",916        "include/clang/AST/CommentCommandInfo.inc",917        "include/clang/AST/CommentCommandList.inc",918        "include/clang/AST/CommentHTMLNamedCharacterReferences.inc",919        "include/clang/AST/CommentHTMLTags.inc",920        "include/clang/AST/CommentHTMLTagsProperties.inc",921        "include/clang/AST/CommentNodes.inc",922        "include/clang/AST/DeclNodes.inc",923        "include/clang/AST/StmtDataCollectors.inc",924        "include/clang/AST/StmtNodes.inc",925    ] + glob([926        "include/clang/AST/*.def",927    ]),928    toolchains = [":workspace_root"],929    deps = [930        ":ast_attr_doc_table_gen",931        ":ast_attr_gen",932        ":ast_bytecode_opcodes_gen",933        ":ast_comment_command_info_gen",934        ":ast_comment_html_named_character_references_gen",935        ":ast_comment_html_tags_gen",936        ":ast_comment_html_tags_properties_gen",937        ":ast_comment_nodes_gen",938        ":ast_decl_nodes_gen",939        ":ast_properties_base_gen",940        ":ast_stmt_data_collectors_gen",941        ":ast_stmt_nodes_gen",942        ":ast_type_properties_gen",943        ":basic",944        ":basic_builtins_gen",945        ":lex",946        ":support",947        ":type_nodes_gen",948        "//llvm:BinaryFormat",949        "//llvm:Core",950        "//llvm:FrontendHLSL",951        "//llvm:FrontendOpenMP",952        "//llvm:Support",953        "//llvm:TargetParser",954    ],955)956 957cc_library(958    name = "index",959    srcs = glob([960        "lib/Index/*.cpp",961        "lib/Index/*.h",962    ]),963    hdrs = glob([964        "include/clang/Index/*.h",965        "include/clang-c/*.h",966    ]),967    includes = ["include"],968    deps = [969        ":ast",970        ":basic",971        ":format",972        ":frontend",973        ":lex",974        ":rewrite",975        ":sema",976        ":serialization",977        "//llvm:Core",978        "//llvm:Support",979    ],980)981 982genrule(983    name = "analysis_htmllogger_gen",984    srcs = [985        "lib/Analysis/FlowSensitive/HTMLLogger.html",986        "lib/Analysis/FlowSensitive/HTMLLogger.css",987        "lib/Analysis/FlowSensitive/HTMLLogger.js",988    ],989    outs = ["lib/Analysis/FlowSensitive/HTMLLogger.inc"],990    cmd = "$(location :bundle_resources) $@ $(SRCS)",991    tools = [":bundle_resources"],992)993 994cc_library(995    name = "analysis",996    srcs = glob([997        "lib/Analysis/FlowSensitive/Models/*.cpp",998        "lib/Analysis/FlowSensitive/*.cpp",999        "lib/Analysis/LifetimeSafety/*.cpp",1000        "lib/Analysis/LifetimeSafety/*.h",1001        "lib/Analysis/*.cpp",1002    ]) + [1003        ":analysis_htmllogger_gen",1004    ],1005    hdrs = glob([1006        "include/clang/Analysis/**/*.h",1007    ]),1008    includes = [1009        "include",1010        "lib/Analysis/FlowSensitive",1011    ],1012    textual_hdrs = glob([1013        "include/clang/Analysis/**/*.def",1014    ]),1015    deps = [1016        ":ast",1017        ":ast_matchers",1018        ":basic",1019        ":lex",1020        ":support",1021        "//llvm:Support",1022    ],1023)1024 1025gentbl_cc_library(1026    name = "sema_attr_gen",1027    tbl_outs = {1028        "include/clang/Sema/AttrIsTypeDependent.inc": ["-gen-clang-attr-is-type-dependent"],1029        "include/clang/Sema/AttrParsedAttrImpl.inc": ["-gen-clang-attr-parsed-attr-impl"],1030        "include/clang/Sema/AttrParsedAttrKinds.inc": ["-gen-clang-attr-parsed-attr-kinds"],1031        "include/clang/Sema/AttrSpellingListIndex.inc": ["-gen-clang-attr-spelling-index"],1032        "include/clang/Sema/AttrTemplateInstantiate.inc": ["-gen-clang-attr-template-instantiate"],1033    },1034    tblgen = ":clang-tblgen",1035    td_file = "include/clang/Basic/Attr.td",1036    deps = [":BasicCoreTdFiles"],1037)1038 1039cc_library(1040    name = "sema",1041    srcs = glob([1042        "lib/Sema/*.cpp",1043        "lib/Sema/*.h",1044    ]) + [1045        "//llvm:include/llvm/Frontend/OpenACC/ACC.inc",1046    ],1047    hdrs = glob([1048        "include/clang/Sema/*.h",1049        "include/clang-c/*.h",1050    ]),1051    copts = ["$(STACK_FRAME_UNLIMITED)"],1052    includes = ["include"],1053    textual_hdrs = [1054        "include/clang/Sema/AttrParsedAttrImpl.inc",1055        "include/clang/Sema/AttrParsedAttrKinds.inc",1056        "include/clang/Sema/AttrSpellingListIndex.inc",1057        "include/clang/Sema/AttrTemplateInstantiate.inc",1058        "lib/Sema/OpenCLBuiltins.inc",1059    ],1060    deps = [1061        ":analysis",1062        ":apinotes",1063        ":ast",1064        ":basic",1065        ":basic_arm_cde_aliases_gen",1066        ":basic_arm_cde_sema_gen",1067        ":basic_arm_sme_builtins_gen",1068        ":basic_arm_sme_builtins_za_state_gen",1069        ":basic_arm_sme_sema_rangechecks_gen",1070        ":basic_arm_sme_streaming_attrs_gen",1071        ":basic_arm_sve_builtins_gen",1072        ":basic_arm_sve_sema_rangechecks_gen",1073        ":basic_arm_sve_streaming_attrs_gen",1074        ":basic_builtins_gen",1075        ":basic_riscv_andes_vector_builtin_sema_gen",1076        ":basic_riscv_sifive_vector_builtin_sema_gen",1077        ":basic_riscv_vector_builtin_sema_gen",1078        ":edit",1079        ":lex",1080        ":libsema_openclbuiltins_inc_gen",1081        ":sema_attr_gen",1082        ":support",1083        ":type_nodes_gen",1084        "//llvm:AllTargetsAsmParsers",1085        "//llvm:AllTargetsCodeGens",1086        "//llvm:Core",1087        "//llvm:Demangle",1088        "//llvm:FrontendHLSL",1089        "//llvm:FrontendOpenMP",1090        "//llvm:MC",1091        "//llvm:MCParser",1092        "//llvm:Support",1093        "//llvm:TargetParser",1094    ],1095)1096 1097gentbl_cc_library(1098    name = "parse_attr_gen",1099    tbl_outs = {1100        "include/clang/Parse/AttrParserStringSwitches.inc": ["-gen-clang-attr-parser-string-switches"],1101        "include/clang/Parse/AttrSubMatchRulesParserStringSwitches.inc": ["-gen-clang-attr-subject-match-rules-parser-string-switches"],1102    },1103    tblgen = ":clang-tblgen",1104    td_file = "include/clang/Basic/Attr.td",1105    deps = [":BasicCoreTdFiles"],1106)1107 1108cc_library(1109    name = "parse",1110    srcs = glob([1111        "lib/Parse/*.cpp",1112    ]),1113    hdrs = [1114        "include/clang/Parse/AttrParserStringSwitches.inc",1115        "include/clang/Parse/AttrSubMatchRulesParserStringSwitches.inc",1116    ] + glob(["include/clang/Parse/*.h"]),1117    includes = ["include"],1118    deps = [1119        ":ast",1120        ":basic",1121        ":lex",1122        ":parse_attr_gen",1123        ":sema",1124        "//llvm:FrontendHLSL",1125        "//llvm:FrontendOpenMP",1126        "//llvm:MC",1127        "//llvm:MCParser",1128        "//llvm:Support",1129    ],1130)1131 1132cc_library(1133    name = "ast_matchers",1134    srcs = glob([1135        "lib/ASTMatchers/*.cpp",1136    ]),1137    hdrs = glob(["include/clang/ASTMatchers/*.h"]),1138    includes = ["include"],1139    deps = [1140        ":ast",1141        ":basic",1142        ":lex",1143        ":support",1144        "//llvm:Support",1145    ],1146)1147 1148cc_library(1149    name = "ast_matchers_dynamic",1150    srcs = glob([1151        "lib/ASTMatchers/Dynamic/*.cpp",1152        "lib/ASTMatchers/Dynamic/*.h",1153    ]),1154    hdrs = glob(["include/clang/ASTMatchers/Dynamic/*.h"]),1155    copts = ["$(STACK_FRAME_UNLIMITED)"],1156    includes = ["include"],1157    deps = [1158        ":ast",1159        ":ast_matchers",1160        ":basic",1161        "//llvm:FrontendOpenMP",1162        "//llvm:Support",1163    ],1164)1165 1166cc_library(1167    name = "rewrite",1168    srcs = glob([1169        "lib/Rewrite/*.cpp",1170    ]),1171    hdrs = glob(["include/clang/Rewrite/Core/*.h"]),1172    includes = ["include"],1173    deps = [1174        ":ast",1175        ":basic",1176        ":edit",1177        ":lex",1178        "//llvm:Support",1179    ],1180)1181 1182cc_library(1183    name = "testing",1184    testonly = 1,1185    srcs = glob([1186        "lib/Testing/*.cpp",1187    ]),1188    hdrs = glob(["include/clang/Testing/*.h"]),1189    includes = ["include"],1190    textual_hdrs = [1191        "include/clang/Testing/TestLanguage.def",1192    ],1193    deps = [1194        ":basic",1195        ":frontend",1196        "//llvm:MC",1197        "//llvm:Support",1198        "//third-party/unittest:gtest",1199    ],1200)1201 1202cc_library(1203    name = "tooling_core",1204    srcs = glob([1205        "lib/Tooling/Core/*.cpp",1206    ]),1207    hdrs = glob(["include/clang/Tooling/Core/*.h"]),1208    includes = ["include"],1209    deps = [1210        ":ast",1211        ":basic",1212        ":lex",1213        ":rewrite",1214        "//llvm:Support",1215    ],1216)1217 1218cc_library(1219    name = "tooling",1220    srcs = glob([1221        "lib/Tooling/*.cpp",1222    ]),1223    hdrs = glob([1224        "include/clang/Tooling/*.h",1225    ]),1226    includes = ["include"],1227    deps = [1228        ":ast",1229        ":ast_matchers",1230        ":basic",1231        ":driver",1232        ":format",1233        ":frontend",1234        ":lex",1235        ":options",1236        ":rewrite",1237        ":support",1238        ":tooling_core",1239        "//llvm:Option",1240        "//llvm:Support",1241        "//llvm:TargetParser",1242    ],1243)1244 1245cc_library(1246    name = "tooling_inclusions",1247    srcs = glob([1248        "lib/Tooling/Inclusions/**/*.cpp",1249        "lib/Tooling/Inclusions/**/*.inc",1250    ]),1251    hdrs = glob([1252        "include/clang/Tooling/Inclusions/**/*.h",1253    ]),1254    deps = [1255        ":ast",1256        ":basic",1257        ":lex",1258        ":rewrite",1259        ":tooling_core",1260        "//llvm:Support",1261    ],1262)1263 1264cc_library(1265    name = "tooling_refactoring",1266    srcs = glob([1267        "lib/Tooling/Refactoring/**/*.cpp",1268    ]),1269    hdrs = glob([1270        "include/clang/Tooling/Refactoring/**/*.h",1271    ]),1272    deps = [1273        ":ast",1274        ":ast_matchers",1275        ":basic",1276        ":format",1277        ":frontend",1278        ":index",1279        ":lex",1280        ":rewrite",1281        ":tooling",1282        ":tooling_core",1283        "//llvm:Support",1284    ],1285)1286 1287td_library(1288    name = "ToolingSyntaxTdFiles",1289    srcs = ["include/clang/Tooling/Syntax/Syntax.td"],1290    includes = ["include"],1291)1292 1293gentbl_cc_library(1294    name = "tooling_syntax_gen",1295    tbl_outs = {1296        "include/clang/Tooling/Syntax/Nodes.inc": ["-gen-clang-syntax-node-list"],1297        "include/clang/Tooling/Syntax/NodeClasses.inc": ["-gen-clang-syntax-node-classes"],1298    },1299    tblgen = ":clang-tblgen",1300    td_file = "include/clang/Tooling/Syntax/Nodes.td",1301    deps = [":ToolingSyntaxTdFiles"],1302)1303 1304cc_library(1305    name = "tooling_syntax",1306    srcs = glob(["lib/Tooling/Syntax/**/*.cpp"]),1307    hdrs = glob(["include/clang/Tooling/Syntax/**/*.h"]),1308    deps = [1309        ":ast",1310        ":basic",1311        ":lex",1312        ":tooling_core",1313        ":tooling_syntax_gen",1314        "//llvm:Support",1315    ],1316)1317 1318cc_library(1319    name = "tooling_dependency_scanning",1320    srcs = glob([1321        "lib/Tooling/DependencyScanning/**/*.h",1322        "lib/Tooling/DependencyScanning/**/*.cpp",1323    ]),1324    hdrs = glob(["include/clang/Tooling/DependencyScanning/**/*.h"]),1325    deps = [1326        ":basic",1327        ":driver",1328        ":frontend",1329        ":lex",1330        ":serialization",1331        ":tooling",1332        "//llvm:Support",1333        "//llvm:TargetParser",1334    ],1335)1336 1337cc_library(1338    name = "transformer",1339    srcs = glob(["lib/Tooling/Transformer/**/*.cpp"]),1340    hdrs = glob(["include/clang/Tooling/Transformer/**/*.h"]),1341    deps = [1342        ":ast",1343        ":ast_matchers",1344        ":basic",1345        ":lex",1346        ":rewrite",1347        ":tooling_refactoring",1348        "//llvm:Support",1349    ],1350)1351 1352cc_library(1353    name = "ast-diff",1354    srcs = glob(["lib/Tooling/ASTDiff/*.cpp"]),1355    hdrs = glob(["include/clang/Tooling/ASTDiff/*.h"]),1356    deps = [1357        ":ast",1358        ":basic",1359        ":lex",1360        "//llvm:Support",1361    ],1362)1363 1364cc_library(1365    name = "crosstu",1366    srcs = glob(["lib/CrossTU/*.cpp"]),1367    hdrs = glob(["include/clang/CrossTU/*.h"]),1368    deps = [1369        ":analysis",1370        ":ast",1371        ":basic",1372        ":driver",1373        ":frontend",1374        ":index",1375        "//llvm:Option",1376        "//llvm:Support",1377        "//llvm:TargetParser",1378    ],1379)1380 1381cc_library(1382    name = "format",1383    srcs = glob(1384        [1385            "lib/Format/*.cpp",1386            "lib/Format/*.h",1387        ],1388    ),1389    hdrs = glob([1390        "include/clang/Format/*.h",1391    ]),1392    includes = ["include"],1393    deps = [1394        ":basic",1395        ":lex",1396        ":tooling_core",1397        ":tooling_inclusions",1398        "//llvm:Support",1399    ],1400)1401 1402cc_library(1403    name = "edit",1404    srcs = glob(["lib/Edit/*.cpp"]),1405    hdrs = glob(["include/clang/Edit/*.h"]),1406    includes = ["include"],1407    deps = [1408        ":ast",1409        ":basic",1410        ":lex",1411        "//llvm:Support",1412    ],1413)1414 1415cc_library(1416    name = "static_analyzer_core_options",1417    hdrs = [1418        "include/clang/StaticAnalyzer/Core/AnalyzerOptions.h",1419    ],1420    textual_hdrs = [1421        "include/clang/StaticAnalyzer/Core/Analyses.def",1422        "include/clang/StaticAnalyzer/Core/AnalyzerOptions.def",1423    ],1424    deps = [1425        ":analysis",1426        ":basic",1427        ":static_analyzer_checkers_gen",1428        "//llvm:Support",1429    ],1430)1431 1432cc_library(1433    name = "static_analyzer_core",1434    srcs = glob([1435        "lib/StaticAnalyzer/Core/**/*.cpp",1436        "lib/StaticAnalyzer/Core/**/*.h",1437    ]),1438    hdrs = glob([1439        "include/clang/StaticAnalyzer/Core/**/*.h",1440    ]),1441    includes = ["include"],1442    textual_hdrs = glob([1443        "include/clang/StaticAnalyzer/Core/**/*.def",1444    ]),1445    deps = [1446        ":analysis",1447        ":ast",1448        ":ast_matchers",1449        ":basic",1450        ":crosstu",1451        ":driver",1452        ":frontend",1453        ":index",1454        ":lex",1455        ":rewrite",1456        ":static_analyzer_checkers_gen",1457        ":tooling",1458        ":tooling_core",1459        "//llvm:Support",1460    ],1461)1462 1463td_library(1464    name = "CheckerBaseTdFiles",1465    srcs = [1466        "include/clang/StaticAnalyzer/Checkers/CheckerBase.td",1467    ],1468    includes = ["include"],1469)1470 1471gentbl_cc_library(1472    name = "static_analyzer_checkers_gen",1473    tbl_outs = {"include/clang/StaticAnalyzer/Checkers/Checkers.inc": ["-gen-clang-sa-checkers"]},1474    tblgen = ":clang-tblgen",1475    td_file = "include/clang/StaticAnalyzer/Checkers/Checkers.td",1476    deps = [":CheckerBaseTdFiles"],1477)1478 1479cc_library(1480    name = "static_analyzer_checkers",1481    srcs = glob([1482        "lib/StaticAnalyzer/Checkers/**/*.cpp",1483        "lib/StaticAnalyzer/Checkers/**/*.h",1484    ]),1485    hdrs = [1486        "include/clang/StaticAnalyzer/Checkers/Checkers.inc",1487    ] + glob([1488        "include/clang/StaticAnalyzer/Checkers/**/*.h",1489    ]),1490    copts = ["$(STACK_FRAME_UNLIMITED)"],1491    includes = ["include"],1492    deps = [1493        ":analysis",1494        ":ast",1495        ":ast_matchers",1496        ":basic",1497        ":driver",1498        ":lex",1499        ":static_analyzer_checkers_gen",1500        ":static_analyzer_core",1501        "//llvm:Support",1502    ],1503)1504 1505gentbl_cc_library(1506    name = "driver_options_inc_gen",1507    tbl_outs = {"include/clang/Options/Options.inc": ["-gen-opt-parser-defs"]},1508    tblgen = "//llvm:llvm-tblgen",1509    td_file = "include/clang/Options/Options.td",1510    deps = ["//llvm:OptParserTdFiles"],1511)1512 1513cc_library(1514    name = "options",1515    srcs = glob(["lib/Options/*.cpp"]),1516    hdrs = glob(["include/clang/Options/*.h"]),1517    includes = ["include"],1518    deps = [1519        ":basic",1520        ":config",1521        ":driver_options_inc_gen",1522        ":static_analyzer_checkers_gen",1523        "//llvm:Option",1524        "//llvm:Support",1525    ],1526)1527 1528cc_library(1529    name = "driver",1530    srcs = glob(1531        [1532            "lib/Driver/*.cpp",1533            "lib/Driver/ToolChains/*.cpp",1534            "lib/Driver/ToolChains/*.h",1535            "lib/Driver/ToolChains/Arch/*.cpp",1536            "lib/Driver/ToolChains/Arch/*.h",1537        ],1538        exclude = [1539            "lib/Driver/ToolChains/MSVCSetupApi.h",1540        ],1541    ),1542    hdrs = glob([1543        "include/clang/Driver/*.h",1544    ]),1545    copts = ["$(STACK_FRAME_UNLIMITED)"],1546    includes = [1547        "include",1548        # TODO: This is likely a layering issue, but files in Arch are currently1549        # directly #including "Tools.h".1550        "lib/Driver",1551    ],1552    linkopts = select({1553        "@platforms//os:windows": ["version.lib"],1554        "//conditions:default": [],1555    }),1556    textual_hdrs = glob([1557        "include/clang/Driver/*.def",1558    ]),1559    deps = [1560        ":ast",1561        ":basic",1562        ":config",1563        ":driver_options_inc_gen",1564        ":frontend",1565        ":lex",1566        ":options",1567        ":parse",1568        ":serialization",1569        ":static_analyzer_checkers_gen",1570        "//llvm:BinaryFormat",1571        "//llvm:FrontendDebug",1572        "//llvm:Instrumentation",1573        "//llvm:MC",1574        "//llvm:Object",1575        "//llvm:Option",1576        "//llvm:ProfileData",1577        "//llvm:Support",1578        "//llvm:Target",1579        "//llvm:TargetParser",1580        "//llvm:WindowsDriver",1581        "//llvm:config",1582    ],1583)1584 1585gentbl_cc_library(1586    name = "headers_arm_neon_gen",1587    tbl_outs = {"lib/Headers/arm_neon.h": ["-gen-arm-neon"]},1588    tblgen = ":clang-tblgen",1589    td_file = "include/clang/Basic/arm_neon.td",1590    deps = [":ArmTdFiles"],1591)1592 1593gentbl_cc_library(1594    name = "headers_arm_fp16_gen",1595    tbl_outs = {"lib/Headers/arm_fp16.h": ["-gen-arm-fp16"]},1596    tblgen = ":clang-tblgen",1597    td_file = "include/clang/Basic/arm_fp16.td",1598    deps = [":ArmTdFiles"],1599)1600 1601gentbl_cc_library(1602    name = "headers_arm_mve_gen",1603    tbl_outs = {"lib/Headers/arm_mve.h": ["-gen-arm-mve-header"]},1604    tblgen = ":clang-tblgen",1605    td_file = "include/clang/Basic/arm_mve.td",1606    deps = [":ArmTdFiles"],1607)1608 1609gentbl_cc_library(1610    name = "headers_arm_cde_gen",1611    tbl_outs = {"lib/Headers/arm_cde.h": ["-gen-arm-cde-header"]},1612    tblgen = ":clang-tblgen",1613    td_file = "include/clang/Basic/arm_cde.td",1614    deps = [":ArmTdFiles"],1615)1616 1617gentbl_cc_library(1618    name = "headers_arm_sve_gen",1619    tbl_outs = {"lib/Headers/arm_sve.h": ["-gen-arm-sve-header"]},1620    tblgen = ":clang-tblgen",1621    td_file = "include/clang/Basic/arm_sve.td",1622    deps = [":ArmTdFiles"],1623)1624 1625gentbl_cc_library(1626    name = "headers_arm_bf16_gen",1627    tbl_outs = {"lib/Headers/arm_bf16.h": ["-gen-arm-bf16"]},1628    tblgen = ":clang-tblgen",1629    td_file = "include/clang/Basic/arm_bf16.td",1630    deps = [":ArmTdFiles"],1631)1632 1633gentbl_cc_library(1634    name = "headers_arm_sme_gen",1635    tbl_outs = {"lib/Headers/arm_sme.h": ["-gen-arm-sme-header"]},1636    tblgen = ":clang-tblgen",1637    td_file = "include/clang/Basic/arm_sme.td",1638    deps = [":ArmTdFiles"],1639)1640 1641gentbl_cc_library(1642    name = "headers_arm_vector_type_gen",1643    tbl_outs = {"lib/Headers/arm_vector_types.h": ["-gen-arm-vector-type"]},1644    tblgen = ":clang-tblgen",1645    td_file = "include/clang/Basic/arm_neon.td",1646    deps = [":ArmTdFiles"],1647)1648 1649gentbl_cc_library(1650    name = "headers_riscv_vector",1651    tbl_outs = {"lib/Headers/riscv_vector.h": ["-gen-riscv-vector-header"]},1652    tblgen = ":clang-tblgen",1653    td_file = "include/clang/Basic/riscv_vector.td",1654    deps = [":RiscvTdFiles"],1655)1656 1657# We generate the set of builtin headers under a special subdirectory in the1658# 'bin' section of the bazel output so that they can be used as data1659# dependencies. It requires listing explicitly all the generated inputs here.1660builtin_headers = glob(1661    ["lib/Headers/**/*.h"],1662    exclude = [1663        # FIXME: They are not handled in CMake side.1664        "lib/Headers/openmp_wrappers/stdlib.h",1665        "lib/Headers/openmp_wrappers/time.h",1666        "lib/Headers/ppc_wrappers/nmmintrin.h",1667    ],1668) + [1669    # keep sorted1670    "lib/Headers/arm_bf16.h",1671    "lib/Headers/arm_cde.h",1672    "lib/Headers/arm_fp16.h",1673    "lib/Headers/arm_mve.h",1674    "lib/Headers/arm_neon.h",1675    "lib/Headers/arm_sme.h",1676    "lib/Headers/arm_sve.h",1677    "lib/Headers/arm_vector_types.h",1678    "lib/Headers/cuda_wrappers/algorithm",1679    "lib/Headers/cuda_wrappers/complex",1680    "lib/Headers/cuda_wrappers/new",1681    "lib/Headers/module.modulemap",1682    "lib/Headers/openmp_wrappers/cmath",1683    "lib/Headers/openmp_wrappers/complex",1684    "lib/Headers/openmp_wrappers/new",1685    "lib/Headers/riscv_vector.h",1686]1687 1688genrule(1689    name = "builtin_headers_gen",1690    srcs = builtin_headers,1691    outs = [hdr.replace("lib/Headers/", "staging/include/") for hdr in builtin_headers],1692    cmd = """1693       for src in $(SRCS); do1694         relsrc=$${src#*"$(WORKSPACE_ROOT)"/clang/lib/Headers}1695         target=$(@D)/staging/include/$$relsrc1696         mkdir -p $$(dirname $$target)1697         cp $$src $$target1698       done""",1699    output_to_bindir = 1,1700    toolchains = [":workspace_root"],1701)1702 1703cc_library(1704    name = "frontend",1705    srcs = glob([1706        "lib/Frontend/*.cpp",1707        "lib/Frontend/*.h",1708    ]),1709    hdrs = glob([1710        "include/clang/Frontend/*.h",1711    ]),1712    copts = ["$(STACK_FRAME_UNLIMITED)"],1713    data = [":builtin_headers_gen"],1714    includes = ["include"],1715    deps = [1716        ":apinotes",1717        ":ast",1718        ":basic",1719        ":config",1720        ":driver_options_inc_gen",1721        ":edit",1722        ":lex",1723        ":options",1724        ":parse",1725        ":sema",1726        ":serialization",1727        ":static_analyzer_core_options",1728        ":support",1729        "//llvm:BinaryFormat",1730        "//llvm:BitReader",1731        "//llvm:BitstreamReader",1732        "//llvm:BitstreamWriter",1733        "//llvm:Core",1734        "//llvm:FrontendDebug",1735        "//llvm:Linker",1736        "//llvm:MC",1737        "//llvm:Option",1738        "//llvm:ProfileData",1739        "//llvm:Remarks",1740        "//llvm:Support",1741        "//llvm:Target",1742        "//llvm:TargetParser",1743        "//llvm:TextAPI",1744        "//llvm:config",1745    ],1746)1747 1748cc_library(1749    name = "frontend_rewrite",1750    srcs = glob([1751        "lib/Frontend/Rewrite/*.cpp",1752    ]),1753    hdrs = glob(["include/clang/Rewrite/Frontend/*.h"]),1754    includes = ["include"],1755    deps = [1756        ":ast",1757        ":basic",1758        ":config",1759        ":edit",1760        ":frontend",1761        ":lex",1762        ":parse",1763        ":rewrite",1764        ":serialization",1765        "//llvm:Support",1766    ],1767)1768 1769cc_library(1770    name = "interpreter",1771    srcs = glob(1772        [1773            "lib/Interpreter/*.cpp",1774            "lib/Interpreter/*.h",1775        ],1776        exclude = [1777            "lib/Interpreter/Wasm.cpp",1778            "lib/Interpreter/Wasm.h",1779        ],1780    ),1781    hdrs = glob(["include/clang/Interpreter/*.h"]),1782    includes = ["include"],1783    deps = [1784        ":analysis",1785        ":ast",1786        ":basic",1787        ":codegen",1788        ":driver",1789        ":edit",1790        ":frontend",1791        ":frontend_tool",1792        ":lex",1793        ":options",1794        ":parse",1795        ":sema",1796        ":serialization",1797        "//llvm:AllTargetsAsmParsers",1798        "//llvm:AllTargetsCodeGens",1799        "//llvm:Core",1800        "//llvm:ExecutionEngine",1801        "//llvm:MC",1802        "//llvm:Option",1803        "//llvm:OrcDebugging",1804        "//llvm:OrcJIT",1805        "//llvm:OrcShared",1806        "//llvm:OrcTargetProcess",1807        "//llvm:Support",1808        "//llvm:Target",1809        "//llvm:TargetParser",1810        "//llvm:TransformUtils",1811        "//llvm:config",1812    ],1813)1814 1815cc_library(1816    name = "codegen",1817    srcs = glob([1818        "lib/CodeGen/**/*.cpp",1819        "lib/CodeGen/**/*.h",1820    ]),1821    hdrs = glob(["include/clang/CodeGen/*.h"]),1822    copts = ["$(STACK_FRAME_UNLIMITED)"],1823    includes = [1824        "include",1825        "lib/CodeGen",1826    ],1827    deps = [1828        ":analysis",1829        ":ast",1830        ":basic",1831        ":basic_arm_cde_cg_gen",1832        ":basic_arm_sme_builtin_cg_gen",1833        ":basic_arm_sve_builtin_cg_gen",1834        ":basic_riscv_andes_vector_builtin_cg_gen",1835        ":basic_riscv_sifive_vector_builtin_cg_gen",1836        ":basic_riscv_vector_builtin_cg_gen",1837        ":driver",1838        ":frontend",1839        ":lex",1840        ":sema",1841        ":serialization",1842        ":type_nodes_gen",1843        "//llvm:AllTargetsAsmParsers",1844        "//llvm:Analysis",1845        "//llvm:BinaryFormat",1846        "//llvm:BitReader",1847        "//llvm:BitWriter",1848        "//llvm:BitstreamReader",1849        "//llvm:CodeGen",1850        "//llvm:Core",1851        "//llvm:Coroutines",1852        "//llvm:Coverage",1853        "//llvm:DebugInfoDWARF",1854        "//llvm:Demangle",1855        "//llvm:FrontendDriver",1856        "//llvm:FrontendHLSL",1857        "//llvm:FrontendOffloading",1858        "//llvm:FrontendOpenMP",1859        "//llvm:HipStdPar",1860        "//llvm:IPO",1861        "//llvm:IRPrinter",1862        "//llvm:IRReader",1863        "//llvm:InstCombine",1864        "//llvm:Instrumentation",1865        "//llvm:LTO",1866        "//llvm:Linker",1867        "//llvm:MC",1868        "//llvm:ObjCARC",1869        "//llvm:Object",1870        "//llvm:Passes",1871        "//llvm:ProfileData",1872        "//llvm:Scalar",1873        "//llvm:Support",1874        "//llvm:Target",1875        "//llvm:TargetParser",1876        "//llvm:TransformUtils",1877        "//llvm:config",1878    ],1879)1880 1881cc_library(1882    name = "static_analyzer_frontend",1883    srcs = glob([1884        "lib/StaticAnalyzer/Frontend/**/*.cpp",1885        "lib/StaticAnalyzer/Frontend/**/*.h",1886    ]),1887    hdrs = glob(["include/clang/StaticAnalyzer/Frontend/**/*.h"]),1888    includes = ["include"],1889    deps = [1890        ":analysis",1891        ":ast",1892        ":basic",1893        ":crosstu",1894        ":driver",1895        ":frontend",1896        ":lex",1897        ":rewrite",1898        ":serialization",1899        ":static_analyzer_checkers",1900        ":static_analyzer_core",1901        ":tooling",1902        ":tooling_core",1903        "//llvm:Support",1904    ],1905)1906 1907gentbl_cc_library(1908    name = "serialization_attr_gen",1909    tbl_outs = {1910        "include/clang/Serialization/AttrPCHRead.inc": ["-gen-clang-attr-pch-read"],1911        "include/clang/Serialization/AttrPCHWrite.inc": ["-gen-clang-attr-pch-write"],1912    },1913    tblgen = ":clang-tblgen",1914    td_file = "include/clang/Basic/Attr.td",1915    deps = [":BasicCoreTdFiles"],1916)1917 1918cc_library(1919    name = "support",1920    srcs = glob([1921        "lib/Support/*.cpp",1922    ]),1923    hdrs = glob([1924        "include/clang/Support/*.h",1925    ]),1926    includes = ["include"],1927    deps = [1928        "//llvm:Support",1929    ],1930)1931 1932cc_library(1933    name = "directory_watcher",1934    srcs = glob([1935        "lib/DirectoryWatcher/*.cpp",1936        "lib/DirectoryWatcher/*.h",1937    ]) + select({1938        "@platforms//os:windows": glob(["lib/DirectoryWatcher/windows/*.cpp"]),1939        "@platforms//os:macos": glob(["lib/DirectoryWatcher/mac/*.cpp"]),1940        "@platforms//os:linux": glob(["lib/DirectoryWatcher/linux/*.cpp"]),1941        "//conditions:default": glob(["lib/DirectoryWatcher/default/*.cpp"]),1942    }),1943    hdrs = glob([1944        "include/clang/DirectoryWatcher/*.h",1945    ]),1946    includes = [1947        "include",1948        "lib/DirectoryWatcher",1949    ],1950    deps = [1951        "//llvm:Support",1952    ],1953)1954 1955cc_library(1956    name = "install_api",1957    srcs = glob([1958        "lib/InstallAPI/*.cpp",1959        "lib/InstallAPI/*.h",1960    ]),1961    hdrs = glob([1962        "include/clang/InstallAPI/*.h",1963    ]),1964    includes = ["include"],1965    deps = [1966        ":ast",1967        ":basic",1968        ":frontend",1969        ":support",1970        "//llvm:Core",1971        "//llvm:Demangle",1972        "//llvm:Support",1973        "//llvm:TextAPI",1974        "//llvm:TextAPIBinaryReader",1975    ],1976)1977 1978cc_library(1979    name = "serialization",1980    srcs = [1981        "include/clang/Serialization/AttrPCHRead.inc",1982        "include/clang/Serialization/AttrPCHWrite.inc",1983    ] + glob([1984        "lib/Serialization/*.cpp",1985        "lib/Serialization/*.h",1986    ]),1987    hdrs = glob([1988        "include/clang/Serialization/*.h",1989    ]),1990    includes = ["include"],1991    textual_hdrs = glob([1992        "include/clang/Serialization/*.def",1993    ]),1994    deps = [1995        ":ast",1996        ":basic",1997        ":lex",1998        ":sema",1999        ":serialization_attr_gen",2000        ":type_nodes_gen",2001        "//llvm:BitReader",2002        "//llvm:BitWriter",2003        "//llvm:BitstreamReader",2004        "//llvm:BitstreamWriter",2005        "//llvm:FrontendOpenMP",2006        "//llvm:Object",2007        "//llvm:Support",2008        "//llvm:TargetParser",2009    ],2010)2011 2012cc_library(2013    name = "frontend_tool",2014    srcs = glob([2015        "lib/FrontendTool/*.cpp",2016    ]),2017    hdrs = glob(["include/clang/FrontendTool/*.h"]),2018    includes = ["include"],2019    deps = [2020        ":basic",2021        ":codegen",2022        ":config",2023        ":driver",2024        ":extract_api",2025        ":frontend",2026        ":frontend_rewrite",2027        ":options",2028        ":static_analyzer_frontend",2029        "//llvm:Option",2030        "//llvm:Support",2031    ],2032)2033 2034cc_library(2035    name = "libclang_static",2036    srcs = glob([2037        "tools/libclang/*.cpp",2038        "tools/libclang/*.h",2039    ]),2040    hdrs = glob(["include/clang-c/*.h"]),2041    defines = ["CINDEX_NO_EXPORTS"],2042    deps = [2043        ":ast",2044        ":basic",2045        ":codegen",2046        ":config",2047        ":driver",2048        ":extract_api",2049        ":frontend",2050        ":index",2051        ":lex",2052        ":options",2053        ":rewrite",2054        ":sema",2055        ":tooling",2056        "//llvm:BitstreamReader",2057        "//llvm:FrontendOpenMP",2058        "//llvm:Support",2059        "//llvm:config",2060    ],2061)2062 2063cc_plugin_library(2064    name = "libclang",2065    srcs = glob([2066        "tools/libclang/*.cpp",2067        "tools/libclang/*.h",2068    ]),2069    hdrs = glob(["include/clang-c/*.h"]),2070    copts = select({2071        "@platforms//os:windows": ["-D_CINDEX_LIB_"],2072        "//conditions:default": [],2073    }),2074    strip_include_prefix = "include",2075    deps = [2076        ":ast",2077        ":basic",2078        ":codegen",2079        ":config",2080        ":driver",2081        ":extract_api",2082        ":frontend",2083        ":index",2084        ":lex",2085        ":options",2086        ":rewrite",2087        ":sema",2088        ":tooling",2089        "//llvm:BitstreamReader",2090        "//llvm:FrontendOpenMP",2091        "//llvm:Support",2092        "//llvm:config",2093    ],2094)2095 2096filegroup(2097    name = "python-sources",2098    srcs = [2099        "bindings/python/clang/cindex.py",2100    ],2101)2102 2103filegroup(2104    name = "python-cindex-examples",2105    srcs = [2106        "bindings/python/examples/cindex/cindex-dump.py",2107        "bindings/python/examples/cindex/cindex-includes.py",2108    ],2109)2110 2111cc_binary(2112    name = "c-index-test",2113    testonly = 1,2114    srcs = [2115        "tools/c-index-test/c-index-test.c",2116        "tools/c-index-test/core_main.cpp",2117    ],2118    copts = [2119        "-Wno-uninitialized",2120    ],2121    stamp = 0,2122    deps = [2123        ":ast",2124        ":basic",2125        ":codegen",2126        ":config",2127        ":driver",2128        ":frontend",2129        ":index",2130        ":lex",2131        ":libclang",2132        ":serialization",2133        "//llvm:Core",2134        "//llvm:MC",2135        "//llvm:Support",2136    ],2137)2138 2139cc_library(2140    name = "apinotes",2141    srcs = glob([2142        "lib/APINotes/*.cpp",2143        "lib/APINotes/*.h",2144    ]),2145    hdrs = glob(["include/clang/APINotes/*.h"]),2146    deps = [2147        ":basic",2148        "//llvm:BitWriter",2149        "//llvm:BitstreamReader",2150        "//llvm:BitstreamWriter",2151        "//llvm:Support",2152    ],2153)2154 2155cc_binary(2156    name = "apinotes-test",2157    testonly = 1,2158    srcs = ["tools/apinotes-test/APINotesTest.cpp"],2159    stamp = 0,2160    deps = [2161        ":apinotes",2162        "//llvm:Support",2163    ],2164)2165 2166cc_binary(2167    name = "clang-import-test",2168    testonly = 1,2169    srcs = glob([2170        "tools/clang-import-test/*.cpp",2171    ]),2172    stamp = 0,2173    deps = [2174        ":ast",2175        ":basic",2176        ":codegen",2177        ":driver",2178        ":frontend",2179        ":lex",2180        ":parse",2181        "//llvm:Core",2182        "//llvm:Support",2183        "//llvm:TargetParser",2184    ],2185)2186 2187cc_library(2188    name = "clang-driver",2189    srcs = glob(["tools/driver/*.cpp"]),2190    copts = [2191        # Disable stack frame size checks in the driver because2192        # clang::ensureStackAddressSpace allocates a large array on the stack.2193        "$(STACK_FRAME_UNLIMITED)",2194    ],2195    deps = [2196        ":analysis",2197        ":ast",2198        ":basic",2199        ":codegen",2200        ":config",2201        ":driver",2202        ":frontend",2203        ":frontend_rewrite",2204        ":frontend_tool",2205        ":lex",2206        ":options",2207        ":parse",2208        ":sema",2209        ":serialization",2210        ":static_analyzer_frontend",2211        "//llvm:AllTargetsAsmParsers",2212        "//llvm:AllTargetsCodeGens",2213        "//llvm:BitReader",2214        "//llvm:BitWriter",2215        "//llvm:CodeGen",2216        "//llvm:Core",2217        "//llvm:IPO",2218        "//llvm:MC",2219        "//llvm:MCParser",2220        "//llvm:Option",2221        "//llvm:Support",2222        "//llvm:Target",2223        "//llvm:TargetParser",2224        "//llvm:config",2225    ],2226)2227 2228llvm_driver_cc_binary(2229    name = "clang",2230    stamp = 0,2231    deps = [":clang-driver"],2232)2233 2234cc_binary(2235    name = "diagtool",2236    srcs = glob([2237        "tools/diagtool/*.cpp",2238        "tools/diagtool/*.h",2239    ]),2240    stamp = 0,2241    deps = [2242        ":basic",2243        ":diagnostic_defs_gen",2244        ":driver",2245        ":frontend",2246        ":lex",2247        ":sema",2248        "//llvm:Support",2249    ],2250)2251 2252filegroup(2253    name = "exploded_graph_rewriter",2254    testonly = 1,2255    data = ["utils/analyzer/exploded-graph-rewriter.py"],2256)2257 2258filegroup(2259    name = "module-deps-to-rsp",2260    testonly = 1,2261    data = ["utils/module-deps-to-rsp.py"],2262)2263 2264filegroup(2265    name = "hmaptool",2266    testonly = 1,2267    data = ["utils/hmaptool/hmaptool"],2268)2269 2270binary_alias(2271    name = "clang++",2272    binary = ":clang",2273)2274 2275binary_alias(2276    name = "clang-cl",2277    binary = ":clang",2278)2279 2280cc_binary(2281    name = "clang-check",2282    srcs = ["tools/clang-check/ClangCheck.cpp"],2283    stamp = 0,2284    deps = [2285        ":ast",2286        ":codegen",2287        ":driver",2288        ":frontend",2289        ":frontend_rewrite",2290        ":options",2291        ":serialization",2292        ":static_analyzer_frontend",2293        ":tooling",2294        ":tooling_syntax",2295        "//llvm:Option",2296        "//llvm:Support",2297    ],2298)2299 2300cc_binary(2301    name = "clang-format",2302    srcs = [2303        "lib/Format/MatchFilePath.h",2304        "tools/clang-format/ClangFormat.cpp",2305    ],2306    stamp = 0,2307    deps = [2308        ":basic",2309        ":format",2310        ":frontend",2311        ":rewrite",2312        "//llvm:Support",2313    ],2314)2315 2316cc_binary(2317    name = "clang-diff",2318    srcs = glob(["tools/clang-diff/*.cpp"]),2319    stamp = 0,2320    deps = [2321        ":ast-diff",2322        ":tooling",2323        "//llvm:Support",2324    ],2325)2326 2327cc_binary(2328    name = "clang-offload-bundler",2329    srcs = glob(["tools/clang-offload-bundler/*.cpp"]),2330    stamp = 0,2331    deps = [2332        ":basic",2333        ":driver",2334        ":tooling",2335        "//llvm:BitWriter",2336        "//llvm:Core",2337        "//llvm:Object",2338        "//llvm:Support",2339        "//llvm:TargetParser",2340    ],2341)2342 2343gentbl_cc_library(2344    name = "linker_wrapper_opts_gen",2345    strip_include_prefix = "tools/clang-linker-wrapper",2346    tbl_outs = {"tools/clang-linker-wrapper/LinkerWrapperOpts.inc": ["-gen-opt-parser-defs"]},2347    tblgen = "//llvm:llvm-tblgen",2348    td_file = "tools/clang-linker-wrapper/LinkerWrapperOpts.td",2349    deps = ["//llvm:OptParserTdFiles"],2350)2351 2352cc_binary(2353    name = "clang-linker-wrapper",2354    srcs = [2355        "tools/clang-linker-wrapper/ClangLinkerWrapper.cpp",2356    ],2357    copts = [2358        "-I$(GENDIR)/$(WORKSPACE_ROOT)/clang/tools/clang-linker-wrapper",2359    ],2360    stamp = 0,2361    toolchains = [":workspace_root"],2362    deps = [2363        ":basic",2364        ":linker_wrapper_opts_gen",2365        "//llvm:AllTargetsAsmParsers",2366        "//llvm:Analysis",2367        "//llvm:BinaryFormat",2368        "//llvm:BitWriter",2369        "//llvm:CodeGen",2370        "//llvm:Core",2371        "//llvm:FrontendOffloading",2372        "//llvm:IRReader",2373        "//llvm:LTO",2374        "//llvm:MC",2375        "//llvm:Object",2376        "//llvm:Option",2377        "//llvm:Passes",2378        "//llvm:Remarks",2379        "//llvm:Support",2380        "//llvm:Target",2381        "//llvm:TargetParser",2382        "//llvm:TransformUtils",2383    ],2384)2385 2386cc_binary(2387    name = "clang-refactor",2388    srcs = glob([2389        "tools/clang-refactor/*.cpp",2390        "tools/clang-refactor/*.h",2391    ]),2392    stamp = 0,2393    deps = [2394        ":ast",2395        ":basic",2396        ":format",2397        ":frontend",2398        ":lex",2399        ":rewrite",2400        ":tooling",2401        ":tooling_refactoring",2402        "//llvm:Support",2403    ],2404)2405 2406cc_binary(2407    name = "clang-repl",2408    srcs = glob(["tools/clang-repl/*.cpp"]),2409    stamp = 0,2410    deps = [2411        ":basic",2412        ":config",2413        ":frontend",2414        ":interpreter",2415        ":lex",2416        ":sema",2417        ":tooling",2418        "//llvm:Core",2419        "//llvm:LineEditor",2420        "//llvm:Option",2421        "//llvm:OrcDebugging",2422        "//llvm:OrcJIT",2423        "//llvm:Support",2424        "//llvm:TargetParser",2425    ],2426)2427 2428cc_binary(2429    name = "clang-extdef-mapping",2430    srcs = glob(["tools/clang-extdef-mapping/*.cpp"]),2431    stamp = 0,2432    deps = [2433        ":ast",2434        ":basic",2435        ":crosstu",2436        ":frontend",2437        ":tooling",2438        "//llvm:Support",2439    ],2440)2441 2442gentbl_cc_library(2443    name = "ScanDepsTableGen",2444    strip_include_prefix = "tools/clang-scan-deps",2445    tbl_outs = {"tools/clang-scan-deps/Opts.inc": ["-gen-opt-parser-defs"]},2446    tblgen = "//llvm:llvm-tblgen",2447    td_file = "tools/clang-scan-deps/Opts.td",2448    deps = ["//llvm:OptParserTdFiles"],2449)2450 2451cc_library(2452    name = "clang-scan-deps-lib",2453    srcs = glob(["tools/clang-scan-deps/*.cpp"]),2454    deps = [2455        ":ScanDepsTableGen",2456        ":driver",2457        ":frontend",2458        ":tooling",2459        ":tooling_dependency_scanning",2460        "//llvm:Support",2461        "//llvm:TargetParser",2462    ],2463)2464 2465llvm_driver_cc_binary(2466    name = "clang-scan-deps",2467    stamp = 0,2468    deps = [":clang-scan-deps-lib"],2469)2470 2471cc_library(2472    name = "extract_api",2473    srcs = glob([2474        "lib/ExtractAPI/**/*.cpp",2475    ]),2476    hdrs = glob([2477        "include/clang/ExtractAPI/**/*.h",2478    ]) + [2479        "include/clang/ExtractAPI/APIRecords.inc",2480    ],2481    includes = ["include"],2482    deps = [2483        ":ast",2484        ":basic",2485        ":frontend",2486        ":index",2487        ":install_api",2488        ":lex",2489        "//llvm:Option",2490        "//llvm:Support",2491        "//llvm:TargetParser",2492    ],2493)2494