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