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-exception
5 load("//llvm:tblgen.bzl", "gentbl")
6 load("//llvm:binary_alias.bzl", "binary_alias")
7 load("//llvm:cc_plugin_library.bzl", "cc_plugin_library")
8 load("//llvm:template_rule.bzl", "template_rule")
11 default_visibility = ["//visibility:public"],
12 licenses = ["notice"],
16 "tools/clang-format/clang-format.el",
17 "tools/clang-format/clang-format-test.el",
18 "tools/clang-format/clang-format.py",
19 "tools/clang-rename/clang-rename.el",
20 "tools/extra/clang-include-fixer/tool/clang-include-fixer.el",
21 "tools/extra/clang-include-fixer/tool/clang-include-fixer-test.el",
25 name = "clang-tblgen",
27 "utils/TableGen/*.cpp",
31 "$(STACK_FRAME_UNLIMITED)",
43 name = "diagnostic_defs_gen",
45 "-gen-clang-diags-defs -clang-component=%s" % c,
46 "include/clang/Basic/Diagnostic%sKinds.inc" % c,
62 "-gen-clang-diag-groups",
63 "include/clang/Basic/DiagnosticGroups.inc",
66 "-gen-clang-diags-index-name",
67 "include/clang/Basic/DiagnosticIndexName.inc",
70 tblgen = ":clang-tblgen",
71 td_file = "include/clang/Basic/Diagnostic.td",
72 td_srcs = glob(["include/clang/Basic/*.td"]),
76 name = "basic_arm_neon_inc_gen",
79 "include/clang/Basic/arm_neon.inc",
81 tblgen = ":clang-tblgen",
82 td_file = "include/clang/Basic/arm_neon.td",
84 "include/clang/Basic/arm_neon.td",
85 "include/clang/Basic/arm_neon_incl.td",
90 name = "basic_arm_fp16_inc_gen",
93 "include/clang/Basic/arm_fp16.inc",
95 tblgen = ":clang-tblgen",
96 td_file = "include/clang/Basic/arm_fp16.td",
98 "include/clang/Basic/arm_fp16.td",
99 "include/clang/Basic/arm_neon_incl.td",
104 name = "basic_arm_mve_aliases_gen",
106 "-gen-arm-mve-builtin-aliases",
107 "include/clang/Basic/arm_mve_builtin_aliases.inc",
109 tblgen = ":clang-tblgen",
110 td_file = "include/clang/Basic/arm_mve.td",
112 "include/clang/Basic/arm_mve.td",
113 "include/clang/Basic/arm_mve_defs.td",
118 name = "basic_arm_sve_builtins_gen",
120 "-gen-arm-sve-builtins",
121 "include/clang/Basic/arm_sve_builtins.inc",
123 tblgen = ":clang-tblgen",
124 td_file = "include/clang/Basic/arm_sve.td",
126 "include/clang/Basic/arm_sve.td",
131 name = "basic_arm_sve_builtin_cg_gen",
133 "-gen-arm-sve-builtin-codegen",
134 "include/clang/Basic/arm_sve_builtin_cg.inc",
136 tblgen = ":clang-tblgen",
137 td_file = "include/clang/Basic/arm_sve.td",
139 "include/clang/Basic/arm_sve.td",
144 name = "basic_arm_sve_typeflags_gen",
146 "-gen-arm-sve-typeflags",
147 "include/clang/Basic/arm_sve_typeflags.inc",
149 tblgen = ":clang-tblgen",
150 td_file = "include/clang/Basic/arm_sve.td",
152 "include/clang/Basic/arm_sve.td",
157 name = "basic_arm_sve_sema_rangechecks_gen",
159 "-gen-arm-sve-sema-rangechecks",
160 "include/clang/Basic/arm_sve_sema_rangechecks.inc",
162 tblgen = ":clang-tblgen",
163 td_file = "include/clang/Basic/arm_sve.td",
165 "include/clang/Basic/arm_sve.td",
170 name = "basic_arm_mve_cg_gen",
172 "-gen-arm-mve-builtin-codegen",
173 "include/clang/Basic/arm_mve_builtin_cg.inc",
175 tblgen = ":clang-tblgen",
176 td_file = "include/clang/Basic/arm_mve.td",
178 "include/clang/Basic/arm_mve.td",
179 "include/clang/Basic/arm_mve_defs.td",
184 name = "basic_arm_mve_inc_gen",
186 "-gen-arm-mve-builtin-def",
187 "include/clang/Basic/arm_mve_builtins.inc",
189 tblgen = ":clang-tblgen",
190 td_file = "include/clang/Basic/arm_mve.td",
192 "include/clang/Basic/arm_mve.td",
193 "include/clang/Basic/arm_mve_defs.td",
198 name = "basic_arm_mve_sema_gen",
200 "-gen-arm-mve-builtin-sema",
201 "include/clang/Basic/arm_mve_builtin_sema.inc",
203 tblgen = ":clang-tblgen",
204 td_file = "include/clang/Basic/arm_mve.td",
206 "include/clang/Basic/arm_mve.td",
207 "include/clang/Basic/arm_mve_defs.td",
212 name = "basic_riscv_vector_builtins_gen",
214 "-gen-riscv-vector-builtins",
215 "include/clang/Basic/riscv_vector_builtins.inc",
217 tblgen = ":clang-tblgen",
218 td_file = "include/clang/Basic/riscv_vector.td",
220 "include/clang/Basic/riscv_vector.td",
225 name = "basic_riscv_vector_builtin_cg_gen",
227 "-gen-riscv-vector-builtin-codegen",
228 "include/clang/Basic/riscv_vector_builtin_cg.inc",
230 tblgen = ":clang-tblgen",
231 td_file = "include/clang/Basic/riscv_vector.td",
233 "include/clang/Basic/riscv_vector.td",
238 name = "basic_riscv_vector_builtin_sema_gen",
240 "-gen-riscv-vector-builtin-sema",
241 "include/clang/Basic/riscv_vector_builtin_sema.inc",
243 tblgen = ":clang-tblgen",
244 td_file = "include/clang/Basic/riscv_vector.td",
246 "include/clang/Basic/riscv_vector.td",
251 name = "basic_arm_cde_gen",
253 "-gen-arm-cde-builtin-def",
254 "include/clang/Basic/arm_cde_builtins.inc",
256 tblgen = ":clang-tblgen",
257 td_file = "include/clang/Basic/arm_cde.td",
259 "include/clang/Basic/arm_cde.td",
260 "include/clang/Basic/arm_mve_defs.td",
265 name = "basic_arm_cde_aliases_gen",
267 "-gen-arm-cde-builtin-aliases",
268 "include/clang/Basic/arm_cde_builtin_aliases.inc",
270 tblgen = ":clang-tblgen",
271 td_file = "include/clang/Basic/arm_cde.td",
273 "include/clang/Basic/arm_cde.td",
274 "include/clang/Basic/arm_mve_defs.td",
279 name = "basic_arm_cde_cg_gen",
281 "-gen-arm-cde-builtin-codegen",
282 "include/clang/Basic/arm_cde_builtin_cg.inc",
284 tblgen = ":clang-tblgen",
285 td_file = "include/clang/Basic/arm_cde.td",
287 "include/clang/Basic/arm_cde.td",
288 "include/clang/Basic/arm_mve_defs.td",
293 name = "basic_arm_cde_sema_gen",
295 "-gen-arm-cde-builtin-sema",
296 "include/clang/Basic/arm_cde_builtin_sema.inc",
298 tblgen = ":clang-tblgen",
299 td_file = "include/clang/Basic/arm_cde.td",
301 "include/clang/Basic/arm_cde.td",
302 "include/clang/Basic/arm_mve_defs.td",
307 name = "basic_attr_gen",
310 "-gen-clang-attr-has-attribute-impl",
311 "include/clang/Basic/AttrHasAttributeImpl.inc",
314 "-gen-clang-attr-list",
315 "include/clang/Basic/AttrList.inc",
318 "-gen-clang-attr-subject-match-rule-list",
319 "include/clang/Basic/AttrSubMatchRulesList.inc",
322 tblgen = ":clang-tblgen",
323 td_file = "include/clang/Basic/Attr.td",
325 "include/clang/Basic/ASTNode.td",
326 "include/clang/Basic/Attr.td",
327 "include/clang/Basic/AttrDocs.td",
328 "include/clang/Basic/DeclNodes.td",
329 "include/clang/Basic/StmtNodes.td",
334 name = "libsema_openclbuiltins_inc_gen",
335 strip_include_prefix = "lib/Sema",
337 "-gen-clang-opencl-builtins",
338 "lib/Sema/OpenCLBuiltins.inc",
340 tblgen = ":clang-tblgen",
341 td_file = "lib/Sema/OpenCLBuiltins.td",
343 "lib/Sema/OpenCLBuiltins.td",
347 # Table definition files can be used for documentation:
349 name = "all_table_defs",
350 srcs = glob(["include/**/*.td"]),
354 glob(["include/**/*.td"]),
358 name = "basic_version_gen",
359 outs = ["include/clang/Basic/Version.inc"],
361 "echo '#define CLANG_VERSION 15.0.3' >> $@\n" +
362 "echo '#define CLANG_VERSION_MAJOR 15' >> $@\n" +
363 "echo '#define CLANG_VERSION_MINOR 0' >> $@\n" +
364 "echo '#define CLANG_VERSION_PATCHLEVEL 3' >> $@\n" +
365 "echo '#define CLANG_VERSION_STRING \"15.0.3\"' >> $@\n"
372 "include/clang/Basic/Version.inc",
373 "include/clang/Config/config.h",
375 includes = ["include"],
377 # We rely on the LLVM config library to provide configuration defines.
382 # TODO: This should get replaced with something that actually generates the
383 # correct version number.
385 name = "vcs_version_gen",
386 # This should be under lib/Basic, but because of how the include paths
387 # are passed through bazel, it's easier to drop generated files next to
388 # the other includes.
389 outs = ["include/VCSVersion.inc"],
390 cmd = "echo '#undef CLANG_REVISION' > $@",
393 # A hacky library to expose some internal headers of the `basic` library to its
394 # own implementation source files using a stripped include prefix rather than
395 # file-relative-inclusion. This is inherently non-modular as these headers will
396 # be repeated in the sources below for file-relative-inclusion.
398 name = "basic_internal_headers",
402 features = ["-header_modules"],
403 strip_include_prefix = "lib/Basic",
409 "include/clang/Basic/Version.inc",
410 "include/VCSVersion.inc",
415 "lib/Basic/Targets/*.cpp",
416 "lib/Basic/Targets/*.h",
419 "include/clang/Basic/*.h",
422 "-DHAVE_VCS_VERSION_INC",
423 "$(STACK_FRAME_UNLIMITED)",
425 includes = ["include"],
427 "include/clang/Basic/arm_fp16.inc",
428 "include/clang/Basic/arm_mve_builtins.inc",
429 "include/clang/Basic/arm_mve_builtin_aliases.inc",
430 "include/clang/Basic/arm_mve_builtin_cg.inc",
431 "include/clang/Basic/arm_mve_builtin_sema.inc",
432 "include/clang/Basic/arm_neon.inc",
433 "include/clang/Basic/AttrHasAttributeImpl.inc",
434 "include/clang/Basic/AttrList.inc",
435 "include/clang/Basic/AttrSubMatchRulesList.inc",
436 "include/clang/Basic/DiagnosticASTKinds.inc",
437 "include/clang/Basic/DiagnosticGroups.inc",
438 "include/clang/Basic/DiagnosticRefactoringKinds.inc",
439 "include/clang/Basic/DiagnosticAnalysisKinds.inc",
440 "include/clang/Basic/DiagnosticSemaKinds.inc",
441 "include/clang/Basic/DiagnosticCommentKinds.inc",
442 "include/clang/Basic/DiagnosticParseKinds.inc",
443 "include/clang/Basic/DiagnosticLexKinds.inc",
444 "include/clang/Basic/DiagnosticSerializationKinds.inc",
445 "include/clang/Basic/DiagnosticFrontendKinds.inc",
446 "include/clang/Basic/DiagnosticDriverKinds.inc",
447 "include/clang/Basic/DiagnosticCrossTUKinds.inc",
448 "include/clang/Basic/DiagnosticCommonKinds.inc",
449 "include/clang/Basic/DiagnosticIndexName.inc",
451 "include/clang/Basic/*.def",
454 ":basic_arm_cde_gen",
455 ":basic_arm_fp16_inc_gen",
456 ":basic_arm_mve_aliases_gen",
457 ":basic_arm_mve_cg_gen",
458 ":basic_arm_mve_inc_gen",
459 ":basic_arm_mve_sema_gen",
460 ":basic_arm_neon_inc_gen",
461 ":basic_arm_sve_builtins_gen",
462 ":basic_arm_sve_typeflags_gen",
464 ":basic_internal_headers",
465 ":basic_riscv_vector_builtin_cg_gen",
466 ":basic_riscv_vector_builtins_gen",
468 ":diagnostic_defs_gen",
471 "//llvm:FrontendOpenMP",
472 "//llvm:Instrumentation",
487 "include/clang/Lex/*.h",
489 includes = ["include"],
498 name = "ast_attr_gen",
501 "-gen-clang-attr-ast-visitor",
502 "include/clang/AST/AttrVisitor.inc",
505 "-gen-clang-attr-classes",
506 "include/clang/AST/Attrs.inc",
509 "-gen-clang-attr-doc-table",
510 "lib/AST/AttrDocTable.inc",
513 "-gen-clang-attr-text-node-dump",
514 "include/clang/AST/AttrTextNodeDump.inc",
517 "-gen-clang-attr-node-traverse",
518 "include/clang/AST/AttrNodeTraverse.inc",
521 "-gen-clang-attr-impl",
522 "include/clang/AST/AttrImpl.inc",
525 tblgen = ":clang-tblgen",
526 td_file = "include/clang/Basic/Attr.td",
528 "include/clang/Basic/Attr.td",
529 "include/clang/Basic/AttrDocs.td",
530 "include/clang/Basic/ASTNode.td",
531 "include/clang/Basic/DeclNodes.td",
532 "include/clang/Basic/StmtNodes.td",
537 name = "ast_decl_nodes_gen",
539 "-gen-clang-decl-nodes",
540 "include/clang/AST/DeclNodes.inc",
542 tblgen = ":clang-tblgen",
543 td_file = "include/clang/Basic/DeclNodes.td",
545 "include/clang/Basic/ASTNode.td",
546 "include/clang/Basic/DeclNodes.td",
551 name = "ast_stmt_nodes_gen",
553 "-gen-clang-stmt-nodes",
554 "include/clang/AST/StmtNodes.inc",
556 tblgen = ":clang-tblgen",
557 td_file = "include/clang/Basic/StmtNodes.td",
559 "include/clang/Basic/ASTNode.td",
560 "include/clang/Basic/StmtNodes.td",
565 name = "ast_comment_nodes_gen",
567 "-gen-clang-comment-nodes",
568 "include/clang/AST/CommentNodes.inc",
570 tblgen = ":clang-tblgen",
571 td_file = "include/clang/Basic/CommentNodes.td",
573 "include/clang/Basic/ASTNode.td",
574 "include/clang/Basic/CommentNodes.td",
579 name = "ast_comment_command_info_gen",
582 "-gen-clang-comment-command-info",
583 "include/clang/AST/CommentCommandInfo.inc",
586 "-gen-clang-comment-command-list",
587 "include/clang/AST/CommentCommandList.inc",
590 tblgen = ":clang-tblgen",
591 td_file = "include/clang/AST/CommentCommands.td",
592 td_srcs = ["include/clang/AST/CommentCommands.td"],
596 name = "ast_comment_html_tags_gen",
598 "-gen-clang-comment-html-tags",
599 "include/clang/AST/CommentHTMLTags.inc",
601 tblgen = ":clang-tblgen",
602 td_file = "include/clang/AST/CommentHTMLTags.td",
603 td_srcs = ["include/clang/AST/CommentHTMLTags.td"],
607 name = "ast_comment_html_tags_properties_gen",
609 "-gen-clang-comment-html-tags-properties",
610 "include/clang/AST/CommentHTMLTagsProperties.inc",
612 tblgen = ":clang-tblgen",
613 td_file = "include/clang/AST/CommentHTMLTags.td",
614 td_srcs = ["include/clang/AST/CommentHTMLTags.td"],
618 name = "ast_comment_html_named_character_references_gen",
620 "-gen-clang-comment-html-named-character-references",
621 "include/clang/AST/CommentHTMLNamedCharacterReferences.inc",
623 tblgen = ":clang-tblgen",
624 td_file = "include/clang/AST/CommentHTMLNamedCharacterReferences.td",
625 td_srcs = ["include/clang/AST/CommentHTMLNamedCharacterReferences.td"],
629 name = "ast_stmt_data_collectors_gen",
631 "-gen-clang-data-collectors",
632 "include/clang/AST/StmtDataCollectors.inc",
634 tblgen = ":clang-tblgen",
635 td_file = "include/clang/AST/StmtDataCollectors.td",
636 td_srcs = ["include/clang/AST/StmtDataCollectors.td"],
640 name = "ast_interp_opcodes_gen",
642 "-gen-clang-opcodes",
643 "lib/AST/Interp/Opcodes.inc",
645 tblgen = ":clang-tblgen",
646 td_file = "lib/AST/Interp/Opcodes.td",
647 td_srcs = ["lib/AST/Interp/Opcodes.td"],
651 name = "ast_properties_base_gen",
654 "-gen-clang-basic-reader",
655 "include/clang/AST/AbstractBasicReader.inc",
658 "-gen-clang-basic-writer",
659 "include/clang/AST/AbstractBasicWriter.inc",
662 tblgen = ":clang-tblgen",
663 td_file = "include/clang/AST/PropertiesBase.td",
664 td_srcs = ["include/clang/AST/PropertiesBase.td"],
668 name = "ast_type_properties_gen",
671 "-gen-clang-type-reader",
672 "include/clang/AST/AbstractTypeReader.inc",
675 "-gen-clang-type-writer",
676 "include/clang/AST/AbstractTypeWriter.inc",
679 tblgen = ":clang-tblgen",
680 td_file = "include/clang/AST/TypeProperties.td",
682 "include/clang/AST/PropertiesBase.td",
683 "include/clang/AST/TypeProperties.td",
684 "include/clang/Basic/ASTNode.td",
685 "include/clang/Basic/TypeNodes.td",
690 name = "type_nodes_gen",
692 "-gen-clang-type-nodes",
693 "include/clang/AST/TypeNodes.inc",
695 tblgen = ":clang-tblgen",
696 td_file = "include/clang/Basic/TypeNodes.td",
698 "include/clang/Basic/ASTNode.td",
699 "include/clang/Basic/TypeNodes.td",
708 "lib/AST/Interp/*.cpp",
709 "lib/AST/Interp/*.h",
711 "lib/AST/AttrDocTable.inc",
712 "lib/AST/Interp/Opcodes.inc",
715 "include/clang/AST/*.h",
718 # FIXME: This is necessary to allow "file relative" include paths from
719 # non-generated `srcs` to find generated `srcs` above. Bazel should
720 # either make this work automatically by creating a unified tree of
721 # `srcs` or at least provide a `local_includes` that has the path
722 # translation logic of `includes` but is only used locally (similar to
723 # `local_defines` vs. `defines`). Until one of those lands, this is the
724 # least bad approach. Using `includes` is *specifically* problematic for
725 # this library because it contains files that collide easily with system
726 # headers such as `CXXABI.h`.
727 "-I$(GENDIR)/external/llvm-project/clang/lib/AST",
728 "-I$(GENDIR)/external/llvm-project/clang/lib/AST/Interp",
731 "include/clang/AST/AttrImpl.inc",
732 "include/clang/AST/AttrNodeTraverse.inc",
733 "include/clang/AST/Attrs.inc",
734 "include/clang/AST/AttrTextNodeDump.inc",
735 "include/clang/AST/AttrVisitor.inc",
736 "include/clang/AST/CommentCommandInfo.inc",
737 "include/clang/AST/CommentCommandList.inc",
738 "include/clang/AST/CommentHTMLNamedCharacterReferences.inc",
739 "include/clang/AST/CommentHTMLTags.inc",
740 "include/clang/AST/CommentHTMLTagsProperties.inc",
741 "include/clang/AST/CommentNodes.inc",
742 "include/clang/AST/DeclNodes.inc",
743 "include/clang/AST/StmtDataCollectors.inc",
744 "include/clang/AST/StmtNodes.inc",
746 "include/clang/AST/*.def",
750 ":ast_comment_command_info_gen",
751 ":ast_comment_html_named_character_references_gen",
752 ":ast_comment_html_tags_gen",
753 ":ast_comment_html_tags_properties_gen",
754 ":ast_comment_nodes_gen",
755 ":ast_decl_nodes_gen",
756 ":ast_interp_opcodes_gen",
757 ":ast_properties_base_gen",
758 ":ast_stmt_data_collectors_gen",
759 ":ast_stmt_nodes_gen",
760 ":ast_type_properties_gen",
764 "//llvm:BinaryFormat",
766 "//llvm:FrontendOpenMP",
778 "include/clang/Index/*.h",
779 "include/clang-c/*.h",
781 includes = ["include"],
798 "lib/Analysis/FlowSensitive/Models/*.cpp",
799 "lib/Analysis/FlowSensitive/*.cpp",
800 "lib/Analysis/*.cpp",
804 "include/clang/Analysis/**/*.h",
806 includes = ["include"],
807 textual_hdrs = glob([
808 "include/clang/Analysis/**/*.def",
820 name = "sema_attr_gen",
823 "-gen-clang-attr-parsed-attr-impl",
824 "include/clang/Sema/AttrParsedAttrImpl.inc",
827 "-gen-clang-attr-parsed-attr-kinds",
828 "include/clang/Sema/AttrParsedAttrKinds.inc",
831 "-gen-clang-attr-parsed-attr-list",
832 "include/clang/Sema/AttrParsedAttrList.inc",
835 "-gen-clang-attr-spelling-index",
836 "include/clang/Sema/AttrSpellingListIndex.inc",
839 "-gen-clang-attr-template-instantiate",
840 "include/clang/Sema/AttrTemplateInstantiate.inc",
843 tblgen = ":clang-tblgen",
844 td_file = "include/clang/Basic/Attr.td",
846 "include/clang/Basic/ASTNode.td",
847 "include/clang/Basic/Attr.td",
848 "include/clang/Basic/AttrDocs.td",
849 "include/clang/Basic/DeclNodes.td",
850 "include/clang/Basic/StmtNodes.td",
861 "include/clang/Sema/*.h",
862 "include/clang-c/*.h",
864 copts = ["$(STACK_FRAME_UNLIMITED)"],
865 includes = ["include"],
867 "include/clang/Sema/AttrParsedAttrImpl.inc",
868 "include/clang/Sema/AttrParsedAttrKinds.inc",
869 "include/clang/Sema/AttrParsedAttrList.inc",
870 "include/clang/Sema/AttrSpellingListIndex.inc",
871 "include/clang/Sema/AttrTemplateInstantiate.inc",
872 "lib/Sema/OpenCLBuiltins.inc",
878 ":basic_arm_cde_aliases_gen",
879 ":basic_arm_cde_sema_gen",
880 ":basic_arm_sve_builtins_gen",
881 ":basic_arm_sve_sema_rangechecks_gen",
882 ":basic_riscv_vector_builtin_sema_gen",
885 ":libsema_openclbuiltins_inc_gen",
889 "//llvm:AllTargetsAsmParsers",
890 "//llvm:AllTargetsCodeGens",
892 "//llvm:FrontendOpenMP",
900 name = "parse_attr_gen",
903 "-gen-clang-attr-parser-string-switches",
904 "include/clang/Parse/AttrParserStringSwitches.inc",
907 "-gen-clang-attr-subject-match-rules-parser-string-switches",
908 "include/clang/Parse/AttrSubMatchRulesParserStringSwitches.inc",
911 tblgen = ":clang-tblgen",
912 td_file = "include/clang/Basic/Attr.td",
914 "include/clang/Basic/ASTNode.td",
915 "include/clang/Basic/Attr.td",
916 "include/clang/Basic/AttrDocs.td",
917 "include/clang/Basic/DeclNodes.td",
918 "include/clang/Basic/StmtNodes.td",
930 "include/clang/Parse/AttrParserStringSwitches.inc",
931 "include/clang/Parse/AttrSubMatchRulesParserStringSwitches.inc",
932 ] + glob(["include/clang/Parse/*.h"]),
933 includes = ["include"],
940 "//llvm:FrontendOpenMP",
948 name = "ast_matchers",
950 "lib/ASTMatchers/*.cpp",
951 "lib/ASTMatchers/*.h",
953 hdrs = glob(["include/clang/ASTMatchers/*.h"]),
954 includes = ["include"],
964 name = "ast_matchers_dynamic",
966 "lib/ASTMatchers/Dynamic/*.cpp",
967 "lib/ASTMatchers/Dynamic/*.h",
969 hdrs = glob(["include/clang/ASTMatchers/Dynamic/*.h"]),
970 copts = ["$(STACK_FRAME_UNLIMITED)"],
971 includes = ["include"],
976 "//llvm:FrontendOpenMP",
987 hdrs = glob(["include/clang/Rewrite/Core/*.h"]),
988 includes = ["include"],
1002 "lib/Testing/*.cpp",
1004 hdrs = glob(["include/clang/Testing/*.h"]),
1005 includes = ["include"],
1015 name = "tooling_core",
1017 "lib/Tooling/Core/*.cpp",
1018 "lib/Tooling/Core/*.h",
1020 hdrs = glob(["include/clang/Tooling/Core/*.h"]),
1021 includes = ["include"],
1035 "lib/Tooling/*.cpp",
1037 # Temporarily disable until we support the generated file.
1038 exclude = ["lib/Tooling/NodeIntrospection.cpp"],
1041 "include/clang/Tooling/*.h",
1043 includes = ["include"],
1060 name = "tooling_inclusions",
1062 "lib/Tooling/Inclusions/**/*.cpp",
1065 "include/clang/Tooling/Inclusions/**/*.h",
1066 "include/clang/Tooling/Inclusions/**/*.inc",
1078 name = "tooling_refactoring",
1080 "lib/Tooling/Refactoring/**/*.cpp",
1081 "lib/Tooling/Refactoring/**/*.h",
1084 "include/clang/Tooling/Refactoring/**/*.h",
1085 "include/clang/Tooling/Refactoring/**/*.def",
1103 name = "tooling_syntax_gen",
1105 ("-gen-clang-syntax-node-list", "include/clang/Tooling/Syntax/Nodes.inc"),
1106 ("-gen-clang-syntax-node-classes", "include/clang/Tooling/Syntax/NodeClasses.inc"),
1108 tblgen = ":clang-tblgen",
1109 td_file = "include/clang/Tooling/Syntax/Nodes.td",
1111 "include/clang/Tooling/Syntax/Nodes.td",
1112 "include/clang/Tooling/Syntax/Syntax.td",
1117 name = "tooling_syntax",
1118 srcs = glob(["lib/Tooling/Syntax/**/*.cpp"]),
1119 hdrs = glob(["include/clang/Tooling/Syntax/**/*.h"]),
1125 ":tooling_syntax_gen",
1131 name = "tooling_dependency_scanning",
1132 srcs = glob(["lib/Tooling/DependencyScanning/**/*.cpp"]),
1133 hdrs = glob(["include/clang/Tooling/DependencyScanning/**/*.h"]),
1146 name = "transformer",
1147 srcs = glob(["lib/Tooling/Transformer/**/*.cpp"]),
1148 hdrs = glob(["include/clang/Tooling/Transformer/**/*.h"]),
1155 ":tooling_refactoring",
1162 srcs = glob(["lib/Tooling/ASTDiff/*.cpp"]),
1163 hdrs = glob(["include/clang/Tooling/ASTDiff/*.h"]),
1174 srcs = glob(["lib/CrossTU/*.cpp"]),
1175 hdrs = glob(["include/clang/CrossTU/*.h"]),
1195 "lib/Format/FormatTokenLexer.h",
1196 "lib/Format/Macros.h",
1198 "include/clang/Format/*.h",
1200 includes = ["include"],
1205 ":tooling_inclusions",
1212 srcs = glob(["lib/Edit/*.cpp"]),
1213 hdrs = glob(["include/clang/Edit/*.h"]),
1214 includes = ["include"],
1224 name = "static_analyzer_core_options",
1226 "include/clang/StaticAnalyzer/Core/AnalyzerOptions.h",
1229 "include/clang/StaticAnalyzer/Core/Analyses.def",
1230 "include/clang/StaticAnalyzer/Core/AnalyzerOptions.def",
1234 ":static_analyzer_checkers_gen",
1240 name = "static_analyzer_core",
1242 "lib/StaticAnalyzer/Core/**/*.cpp",
1243 "lib/StaticAnalyzer/Core/**/*.h",
1246 "include/clang/StaticAnalyzer/Core/**/*.h",
1248 includes = ["include"],
1249 textual_hdrs = glob([
1250 "include/clang/StaticAnalyzer/Core/**/*.def",
1262 ":static_analyzer_checkers_gen",
1270 name = "static_analyzer_checkers_gen",
1272 "-gen-clang-sa-checkers",
1273 "include/clang/StaticAnalyzer/Checkers/Checkers.inc",
1275 tblgen = ":clang-tblgen",
1276 td_file = "include/clang/StaticAnalyzer/Checkers/Checkers.td",
1278 "include/clang/StaticAnalyzer/Checkers/CheckerBase.td",
1279 "include/clang/StaticAnalyzer/Checkers/Checkers.td",
1284 name = "static_analyzer_checkers",
1286 "lib/StaticAnalyzer/Checkers/**/*.cpp",
1287 "lib/StaticAnalyzer/Checkers/**/*.h",
1290 "include/clang/StaticAnalyzer/Checkers/Checkers.inc",
1292 "include/clang/StaticAnalyzer/Checkers/**/*.h",
1294 copts = ["$(STACK_FRAME_UNLIMITED)"],
1295 includes = ["include"],
1303 ":static_analyzer_checkers_gen",
1304 ":static_analyzer_core",
1310 name = "driver_options_inc_gen",
1312 "-gen-opt-parser-defs",
1313 "include/clang/Driver/Options.inc",
1315 tblgen = "//llvm:llvm-tblgen",
1316 td_file = "include/clang/Driver/Options.td",
1318 "//llvm:include/llvm/Option/OptParser.td",
1328 "lib/Driver/Arch/*.cpp",
1329 "lib/Driver/Arch/*.h",
1330 "lib/Driver/ToolChains/*.cpp",
1331 "lib/Driver/ToolChains/*.h",
1332 "lib/Driver/ToolChains/Arch/*.cpp",
1333 "lib/Driver/ToolChains/Arch/*.h",
1336 "lib/Driver/ToolChains/MSVCSetupApi.h",
1340 "include/clang/Driver/*.h",
1342 copts = ["$(STACK_FRAME_UNLIMITED)"],
1345 # TODO: This is likely a layering issue, but files in Arch are currently
1346 # directly #including "Tools.h".
1350 "@bazel_tools//src/conditions:windows": ["version.lib"],
1351 "//conditions:default": [],
1353 textual_hdrs = glob([
1354 "include/clang/Driver/*.def",
1360 ":driver_options_inc_gen",
1362 ":static_analyzer_checkers_gen",
1363 "//llvm:BinaryFormat",
1366 "//llvm:ProfileData",
1369 "//llvm:WindowsDriver",
1375 name = "headers_arm_neon_gen",
1378 "lib/Headers/arm_neon.h",
1380 tblgen = ":clang-tblgen",
1381 td_file = "include/clang/Basic/arm_neon.td",
1383 "include/clang/Basic/arm_neon.td",
1384 "include/clang/Basic/arm_neon_incl.td",
1389 name = "headers_arm_fp16_gen",
1392 "lib/Headers/arm_fp16.h",
1394 tblgen = ":clang-tblgen",
1395 td_file = "include/clang/Basic/arm_fp16.td",
1397 "include/clang/Basic/arm_fp16.td",
1398 "include/clang/Basic/arm_neon_incl.td",
1403 name = "headers_arm_mve_gen",
1405 "-gen-arm-mve-header",
1406 "lib/Headers/arm_mve.h",
1408 tblgen = ":clang-tblgen",
1409 td_file = "include/clang/Basic/arm_mve.td",
1411 "include/clang/Basic/arm_mve.td",
1412 "include/clang/Basic/arm_mve_defs.td",
1417 name = "headers_arm_cde_gen",
1419 "-gen-arm-cde-header",
1420 "lib/Headers/arm_cde.h",
1422 tblgen = ":clang-tblgen",
1423 td_file = "include/clang/Basic/arm_cde.td",
1425 "include/clang/Basic/arm_cde.td",
1426 "include/clang/Basic/arm_mve_defs.td",
1431 name = "headers_arm_sve_gen",
1433 "-gen-arm-sve-header",
1434 "lib/Headers/arm_sve.h",
1436 tblgen = ":clang-tblgen",
1437 td_file = "include/clang/Basic/arm_sve.td",
1439 "include/clang/Basic/arm_sve.td",
1444 name = "headers_arm_bf16_gen",
1447 "lib/Headers/arm_bf16.h",
1449 tblgen = ":clang-tblgen",
1450 td_file = "include/clang/Basic/arm_bf16.td",
1452 "include/clang/Basic/arm_bf16.td",
1453 "include/clang/Basic/arm_neon_incl.td",
1458 name = "headers_riscv_vector",
1460 "-gen-riscv-vector-header",
1461 "lib/Headers/riscv_vector.h",
1463 tblgen = ":clang-tblgen",
1464 td_file = "include/clang/Basic/riscv_vector.td",
1466 "include/clang/Basic/riscv_vector.td",
1470 # We generate the set of builtin headers under a special subdirectory in the
1471 # 'bin' section of the bazel output so that they can be used as data
1472 # dependencies. It requires listing explicitly all the generated inputs here.
1473 builtin_headers = glob(
1474 ["lib/Headers/**/*.h"],
1476 # FIXME: They are not handled in CMake side.
1477 "lib/Headers/openmp_wrappers/time.h",
1478 "lib/Headers/ppc_wrappers/nmmintrin.h",
1481 "lib/Headers/arm_cde.h",
1482 "lib/Headers/arm_fp16.h",
1483 "lib/Headers/arm_mve.h",
1484 "lib/Headers/arm_neon.h",
1485 "lib/Headers/arm_sve.h",
1486 "lib/Headers/arm_bf16.h",
1487 "lib/Headers/riscv_vector.h",
1491 name = "builtin_headers_gen",
1492 srcs = builtin_headers,
1493 outs = [hdr.replace("lib/Headers/", "staging/include/") for hdr in builtin_headers],
1495 for src in $(SRCS); do
1496 relsrc=$${src/*external\\/llvm-project\\/clang\\/lib\\/Headers\\/}
1497 target=$(@D)/staging/include/$$relsrc
1498 mkdir -p $$(dirname $$target)
1501 output_to_bindir = 1,
1507 "lib/Frontend/*.cpp",
1511 "include/clang/Frontend/*.h",
1513 copts = ["$(STACK_FRAME_UNLIMITED)"],
1514 data = [":builtin_headers_gen"],
1515 includes = ["include"],
1516 textual_hdrs = glob([
1517 "include/clang/Frontend/*.def",
1524 ":driver_options_inc_gen",
1530 ":static_analyzer_core_options",
1531 "//llvm:BinaryFormat",
1533 "//llvm:BitstreamReader",
1534 "//llvm:BitstreamWriter",
1539 "//llvm:ProfileData",
1547 name = "frontend_rewrite",
1549 "lib/Frontend/Rewrite/*.cpp",
1550 "lib/Frontend/Rewrite/*.h",
1552 hdrs = glob(["include/clang/Rewrite/Frontend/*.h"]),
1553 includes = ["include"],
1569 name = "interpreter",
1571 "lib/Interpreter/*.cpp",
1572 "lib/Interpreter/*.h",
1574 hdrs = glob(["include/clang/Interpreter/*.h"]),
1575 includes = ["include"],
1589 "//llvm:AllTargetsAsmParsers",
1590 "//llvm:AllTargetsCodeGens",
1592 "//llvm:ExecutionEngine",
1603 "lib/CodeGen/*.cpp",
1606 hdrs = glob(["include/clang/CodeGen/*.h"]),
1607 copts = ["$(STACK_FRAME_UNLIMITED)"],
1608 includes = ["include"],
1613 ":basic_arm_cde_cg_gen",
1614 ":basic_arm_sve_builtin_cg_gen",
1615 ":basic_riscv_vector_builtin_cg_gen",
1621 "//llvm:AllTargetsAsmParsers",
1625 "//llvm:BitstreamReader",
1628 "//llvm:Coroutines",
1630 "//llvm:DebugInfoDWARF",
1632 "//llvm:FrontendOpenMP",
1635 "//llvm:InstCombine",
1636 "//llvm:Instrumentation",
1643 "//llvm:ProfileData",
1647 "//llvm:TransformUtils",
1652 name = "static_analyzer_frontend",
1654 "lib/StaticAnalyzer/Frontend/**/*.cpp",
1655 "lib/StaticAnalyzer/Frontend/**/*.h",
1657 hdrs = glob(["include/clang/StaticAnalyzer/Frontend/**/*.h"]),
1658 includes = ["include"],
1669 ":static_analyzer_checkers",
1670 ":static_analyzer_core",
1678 name = "serialization_attr_gen",
1681 "-gen-clang-attr-pch-read",
1682 "include/clang/Serialization/AttrPCHRead.inc",
1685 "-gen-clang-attr-pch-write",
1686 "include/clang/Serialization/AttrPCHWrite.inc",
1689 tblgen = ":clang-tblgen",
1690 td_file = "include/clang/Basic/Attr.td",
1692 "include/clang/Basic/ASTNode.td",
1693 "include/clang/Basic/Attr.td",
1694 "include/clang/Basic/AttrDocs.td",
1695 "include/clang/Basic/DeclNodes.td",
1696 "include/clang/Basic/StmtNodes.td",
1703 "lib/Support/*.cpp",
1706 "include/clang/Support/*.h",
1708 includes = ["include"],
1715 name = "serialization",
1717 "include/clang/Serialization/AttrPCHRead.inc",
1718 "include/clang/Serialization/AttrPCHWrite.inc",
1720 "lib/Serialization/*.cpp",
1721 "lib/Serialization/*.h",
1724 "include/clang/Serialization/*.h",
1726 includes = ["include"],
1727 textual_hdrs = glob([
1728 "include/clang/Serialization/*.def",
1735 ":serialization_attr_gen",
1739 "//llvm:BitstreamReader",
1740 "//llvm:BitstreamWriter",
1741 "//llvm:FrontendOpenMP",
1747 name = "frontend_tool",
1749 "lib/FrontendTool/*.cpp",
1750 "lib/FrontendTool/*.h",
1752 hdrs = glob(["include/clang/FrontendTool/*.h"]),
1753 includes = ["include"],
1761 ":frontend_rewrite",
1762 ":static_analyzer_frontend",
1769 name = "arc_migrate",
1771 "lib/ARCMigrate/*.cpp",
1772 "lib/ARCMigrate/*.h",
1774 hdrs = glob(["include/clang/ARCMigrate/*.h"]),
1775 includes = ["include"],
1782 ":frontend_rewrite",
1788 ":static_analyzer_checkers",
1789 ":static_analyzer_core",
1795 name = "libclang_static",
1797 "tools/libclang/*.cpp",
1798 "tools/libclang/*.h",
1800 hdrs = glob(["include/clang-c/*.h"]),
1801 defines = ["CINDEX_NO_EXPORTS"],
1815 "//llvm:BitstreamReader",
1816 "//llvm:FrontendOpenMP",
1825 "tools/libclang/*.cpp",
1826 "tools/libclang/*.h",
1828 hdrs = glob(["include/clang-c/*.h"]),
1830 "@bazel_tools//src/conditions:windows": ["-D_CINDEX_LIB_"],
1831 "//conditions:default": [],
1833 strip_include_prefix = "include",
1847 "//llvm:BitstreamReader",
1848 "//llvm:FrontendOpenMP",
1855 name = "python-sources",
1857 "bindings/python/clang/cindex.py",
1858 "bindings/python/clang/enumerations.py",
1863 name = "python-cindex-examples",
1865 "bindings/python/examples/cindex/cindex-dump.py",
1866 "bindings/python/examples/cindex/cindex-includes.py",
1871 name = "c-index-test",
1874 "tools/c-index-test/c-index-test.c",
1875 "tools/c-index-test/core_main.cpp",
1878 "-Wno-uninitialized",
1898 name = "arcmt-test",
1900 srcs = ["tools/arcmt-test/arcmt-test.cpp"],
1907 ":frontend_rewrite",
1914 name = "c-arcmt-test",
1916 srcs = ["tools/c-arcmt-test/c-arcmt-test.c"],
1918 "@bazel_tools//src/conditions:windows": [],
1919 "//conditions:default": ["-std=gnu99"],
1931 name = "clang-import-test",
1934 "tools/clang-import-test/*.cpp",
1935 "tools/clang-import-test/*.h",
1952 name = "clang_main",
1953 src = "//llvm:cmake/modules/llvm-driver-template.cpp.in",
1954 out = "clang-driver.cpp",
1956 "@TOOL_NAME@": "clang",
1961 name = "clang-driver",
1963 "tools/driver/*.cpp",
1965 ]) + ["clang-driver.cpp"],
1967 # Disable stack frame size checks in the driver because
1968 # clang::ensureStackAddressSpace allocates a large array on the stack.
1969 "$(STACK_FRAME_UNLIMITED)",
1979 ":frontend_rewrite",
1985 ":static_analyzer_frontend",
1986 "//llvm:AllTargetsAsmParsers",
1987 "//llvm:AllTargetsCodeGens",
2014 "tools/diagtool/*.cpp",
2015 "tools/diagtool/*.h",
2028 name = "exploded_graph_rewriter",
2030 data = ["utils/analyzer/exploded-graph-rewriter.py"],
2034 name = "module-deps-to-rsp",
2036 data = ["utils/module-deps-to-rsp.py"],
2042 data = ["utils/hmaptool/hmaptool"],
2051 name = "clang-check",
2052 srcs = ["tools/clang-check/ClangCheck.cpp"],
2059 ":frontend_rewrite",
2061 ":static_analyzer_frontend",
2070 name = "clang-format",
2072 "tools/clang-format/ClangFormat.cpp",
2085 name = "clang-diff",
2086 srcs = glob(["tools/clang-diff/*.cpp"]),
2096 name = "clang-offload-bundler",
2097 srcs = glob(["tools/clang-offload-bundler/*.cpp"]),
2110 name = "clang-offload-wrapper",
2111 srcs = glob(["tools/clang-offload-wrapper/*.cpp"]),
2117 "//llvm:TransformUtils",
2118 "//llvm:ir_headers",
2123 name = "clang-refactor",
2125 "tools/clang-refactor/*.cpp",
2126 "tools/clang-refactor/*.h",
2137 ":tooling_refactoring",
2143 name = "clang-rename",
2144 srcs = glob(["tools/clang-rename/*.cpp"]),
2151 ":tooling_refactoring",
2157 name = "clang-repl",
2158 srcs = glob(["tools/clang-repl/*.cpp"]),
2166 "//llvm:LineEditor",
2174 name = "clang-extdef-mapping",
2175 srcs = glob(["tools/clang-extdef-mapping/*.cpp"]),
2188 name = "clang-scan-deps",
2189 srcs = glob(["tools/clang-scan-deps/*.cpp"]),
2194 ":tooling_dependency_scanning",
2200 name = "extract_api",
2202 "lib/ExtractAPI/**/*.cpp",
2203 "lib/ExtractAPI/**/*.h",
2205 hdrs = glob(["include/clang/ExtractAPI/**/*.h"]),
2206 includes = ["include"],