blob: fcd1b598f2499304879f206e5d7f4745fada5783 [file] [log] [blame]
# This file is licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
load("//llvm:tblgen.bzl", "gentbl")
load("//llvm:binary_alias.bzl", "binary_alias")
load("//llvm:cc_plugin_library.bzl", "cc_plugin_library")
package(
default_visibility = ["//visibility:public"],
licenses = ["notice"],
)
exports_files([
"tools/clang-format/clang-format.el",
"tools/clang-format/clang-format-test.el",
"tools/clang-format/clang-format.py",
"tools/clang-rename/clang-rename.el",
"tools/extra/clang-include-fixer/tool/clang-include-fixer.el",
"tools/extra/clang-include-fixer/tool/clang-include-fixer-test.el",
])
cc_binary(
name = "clang-tblgen",
srcs = glob([
"utils/TableGen/*.cpp",
"utils/TableGen/*.h",
]),
copts = [
"$(STACK_FRAME_UNLIMITED)",
],
stamp = 0,
deps = [
"//llvm:Support",
"//llvm:TableGen",
"//llvm:config",
],
)
gentbl(
name = "diagnostic_defs_gen",
tbl_outs = [(
"-gen-clang-diags-defs -clang-component=%s" % c,
"include/clang/Basic/Diagnostic%sKinds.inc" % c,
) for c in [
"AST",
"Analysis",
"Comment",
"Common",
"CrossTU",
"Driver",
"Frontend",
"Lex",
"Parse",
"Refactoring",
"Sema",
"Serialization",
]] + [
(
"-gen-clang-diag-groups",
"include/clang/Basic/DiagnosticGroups.inc",
),
(
"-gen-clang-diags-index-name",
"include/clang/Basic/DiagnosticIndexName.inc",
),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/Diagnostic.td",
td_srcs = glob(["include/clang/Basic/*.td"]),
)
gentbl(
name = "basic_arm_neon_inc_gen",
tbl_outs = [(
"-gen-arm-neon-sema",
"include/clang/Basic/arm_neon.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_neon.td",
td_srcs = [
"include/clang/Basic/arm_neon.td",
"include/clang/Basic/arm_neon_incl.td",
],
)
gentbl(
name = "basic_arm_fp16_inc_gen",
tbl_outs = [(
"-gen-arm-neon-sema",
"include/clang/Basic/arm_fp16.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_fp16.td",
td_srcs = [
"include/clang/Basic/arm_fp16.td",
"include/clang/Basic/arm_neon_incl.td",
],
)
gentbl(
name = "basic_arm_mve_aliases_gen",
tbl_outs = [(
"-gen-arm-mve-builtin-aliases",
"include/clang/Basic/arm_mve_builtin_aliases.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_mve.td",
td_srcs = [
"include/clang/Basic/arm_mve.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "basic_arm_sve_builtins_gen",
tbl_outs = [(
"-gen-arm-sve-builtins",
"include/clang/Basic/arm_sve_builtins.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_sve.td",
td_srcs = [
"include/clang/Basic/arm_sve.td",
],
)
gentbl(
name = "basic_arm_sve_builtin_cg_gen",
tbl_outs = [(
"-gen-arm-sve-builtin-codegen",
"include/clang/Basic/arm_sve_builtin_cg.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_sve.td",
td_srcs = [
"include/clang/Basic/arm_sve.td",
],
)
gentbl(
name = "basic_arm_sve_typeflags_gen",
tbl_outs = [(
"-gen-arm-sve-typeflags",
"include/clang/Basic/arm_sve_typeflags.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_sve.td",
td_srcs = [
"include/clang/Basic/arm_sve.td",
],
)
gentbl(
name = "basic_arm_sve_sema_rangechecks_gen",
tbl_outs = [(
"-gen-arm-sve-sema-rangechecks",
"include/clang/Basic/arm_sve_sema_rangechecks.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_sve.td",
td_srcs = [
"include/clang/Basic/arm_sve.td",
],
)
gentbl(
name = "basic_arm_mve_cg_gen",
tbl_outs = [(
"-gen-arm-mve-builtin-codegen",
"include/clang/Basic/arm_mve_builtin_cg.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_mve.td",
td_srcs = [
"include/clang/Basic/arm_mve.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "basic_arm_mve_inc_gen",
tbl_outs = [(
"-gen-arm-mve-builtin-def",
"include/clang/Basic/arm_mve_builtins.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_mve.td",
td_srcs = [
"include/clang/Basic/arm_mve.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "basic_arm_mve_sema_gen",
tbl_outs = [(
"-gen-arm-mve-builtin-sema",
"include/clang/Basic/arm_mve_builtin_sema.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_mve.td",
td_srcs = [
"include/clang/Basic/arm_mve.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "basic_riscv_vector_builtins_gen",
tbl_outs = [(
"-gen-riscv-vector-builtins",
"include/clang/Basic/riscv_vector_builtins.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/riscv_vector.td",
td_srcs = [
"include/clang/Basic/riscv_vector.td",
],
)
gentbl(
name = "basic_riscv_vector_builtin_cg_gen",
tbl_outs = [(
"-gen-riscv-vector-builtin-codegen",
"include/clang/Basic/riscv_vector_builtin_cg.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/riscv_vector.td",
td_srcs = [
"include/clang/Basic/riscv_vector.td",
],
)
gentbl(
name = "basic_arm_cde_gen",
tbl_outs = [(
"-gen-arm-cde-builtin-def",
"include/clang/Basic/arm_cde_builtins.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_cde.td",
td_srcs = [
"include/clang/Basic/arm_cde.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "basic_arm_cde_aliases_gen",
tbl_outs = [(
"-gen-arm-cde-builtin-aliases",
"include/clang/Basic/arm_cde_builtin_aliases.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_cde.td",
td_srcs = [
"include/clang/Basic/arm_cde.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "basic_arm_cde_cg_gen",
tbl_outs = [(
"-gen-arm-cde-builtin-codegen",
"include/clang/Basic/arm_cde_builtin_cg.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_cde.td",
td_srcs = [
"include/clang/Basic/arm_cde.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "basic_arm_cde_sema_gen",
tbl_outs = [(
"-gen-arm-cde-builtin-sema",
"include/clang/Basic/arm_cde_builtin_sema.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_cde.td",
td_srcs = [
"include/clang/Basic/arm_cde.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "basic_attr_gen",
tbl_outs = [
(
"-gen-clang-attr-has-attribute-impl",
"include/clang/Basic/AttrHasAttributeImpl.inc",
),
(
"-gen-clang-attr-list",
"include/clang/Basic/AttrList.inc",
),
(
"-gen-clang-attr-subject-match-rule-list",
"include/clang/Basic/AttrSubMatchRulesList.inc",
),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/Attr.td",
td_srcs = [
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/Attr.td",
"include/clang/Basic/AttrDocs.td",
"include/clang/Basic/DeclNodes.td",
"include/clang/Basic/StmtNodes.td",
],
)
gentbl(
name = "libsema_openclbuiltins_inc_gen",
strip_include_prefix = "lib/Sema",
tbl_outs = [(
"-gen-clang-opencl-builtins",
"lib/Sema/OpenCLBuiltins.inc",
)],
tblgen = ":clang-tblgen",
td_file = "lib/Sema/OpenCLBuiltins.td",
td_srcs = [
"lib/Sema/OpenCLBuiltins.td",
],
)
# Table definition files can be used for documentation:
filegroup(
name = "all_table_defs",
srcs = glob(["include/**/*.td"]),
)
exports_files(
glob(["include/**/*.td"]),
)
genrule(
name = "basic_version_gen",
outs = ["include/clang/Basic/Version.inc"],
cmd = (
"echo '#define CLANG_VERSION 14.0.0' >> $@\n" +
"echo '#define CLANG_VERSION_MAJOR 14' >> $@\n" +
"echo '#define CLANG_VERSION_MINOR 0' >> $@\n" +
"echo '#define CLANG_VERSION_PATCHLEVEL 0' >> $@\n" +
"echo '#define CLANG_VERSION_STRING \"14.0.0\"' >> $@\n"
),
)
cc_library(
name = "config",
hdrs = [
"include/clang/Basic/Version.inc",
"include/clang/Config/config.h",
],
includes = ["include"],
deps = [
# We rely on the LLVM config library to provide configuration defines.
"//llvm:config",
],
)
# TODO: This should get replaced with something that actually generates the
# correct version number.
genrule(
name = "vcs_version_gen",
# This should be under lib/Basic, but because of how the include paths
# are passed through bazel, it's easier to drop generated files next to
# the other includes.
outs = ["include/VCSVersion.inc"],
cmd = "echo '#define CLANG_REVISION \"git\"' > $@",
)
# A hacky library to expose some internal headers of the `basic` library to its
# own implementation source files using a stripped include prefix rather than
# file-relative-inclusion. This is inherently non-modular as these headers will
# be repeated in the sources below for file-relative-inclusion.
cc_library(
name = "basic_internal_headers",
hdrs = glob([
"lib/Basic/*.h",
]),
features = ["-header_modules"],
strip_include_prefix = "lib/Basic",
)
cc_library(
name = "basic",
srcs = [
"include/clang/Basic/Version.inc",
"include/VCSVersion.inc",
] + glob([
"lib/Basic/*.cpp",
"lib/Basic/*.c",
"lib/Basic/*.h",
"lib/Basic/Targets/*.cpp",
"lib/Basic/Targets/*.h",
]),
hdrs = glob([
"include/clang/Basic/*.h",
]),
copts = [
"-DHAVE_VCS_VERSION_INC",
"$(STACK_FRAME_UNLIMITED)",
],
includes = ["include"],
textual_hdrs = [
"include/clang/Basic/arm_fp16.inc",
"include/clang/Basic/arm_mve_builtins.inc",
"include/clang/Basic/arm_mve_builtin_aliases.inc",
"include/clang/Basic/arm_mve_builtin_cg.inc",
"include/clang/Basic/arm_mve_builtin_sema.inc",
"include/clang/Basic/arm_neon.inc",
"include/clang/Basic/AttrHasAttributeImpl.inc",
"include/clang/Basic/AttrList.inc",
"include/clang/Basic/AttrSubMatchRulesList.inc",
"include/clang/Basic/DiagnosticASTKinds.inc",
"include/clang/Basic/DiagnosticGroups.inc",
"include/clang/Basic/DiagnosticRefactoringKinds.inc",
"include/clang/Basic/DiagnosticAnalysisKinds.inc",
"include/clang/Basic/DiagnosticSemaKinds.inc",
"include/clang/Basic/DiagnosticCommentKinds.inc",
"include/clang/Basic/DiagnosticParseKinds.inc",
"include/clang/Basic/DiagnosticLexKinds.inc",
"include/clang/Basic/DiagnosticSerializationKinds.inc",
"include/clang/Basic/DiagnosticFrontendKinds.inc",
"include/clang/Basic/DiagnosticDriverKinds.inc",
"include/clang/Basic/DiagnosticCrossTUKinds.inc",
"include/clang/Basic/DiagnosticCommonKinds.inc",
"include/clang/Basic/DiagnosticIndexName.inc",
] + glob([
"include/clang/Basic/*.def",
]),
deps = [
":basic_arm_cde_gen",
":basic_arm_fp16_inc_gen",
":basic_arm_mve_aliases_gen",
":basic_arm_mve_cg_gen",
":basic_arm_mve_inc_gen",
":basic_arm_mve_sema_gen",
":basic_arm_neon_inc_gen",
":basic_arm_sve_builtins_gen",
":basic_arm_sve_typeflags_gen",
":basic_attr_gen",
":basic_internal_headers",
":basic_riscv_vector_builtin_cg_gen",
":basic_riscv_vector_builtins_gen",
":config",
":diagnostic_defs_gen",
":sema_attr_gen",
"//llvm:Core",
"//llvm:FrontendOpenMP",
"//llvm:Instrumentation",
"//llvm:MC",
"//llvm:Support",
"//llvm:Target",
"//llvm:config",
],
)
cc_library(
name = "lex",
srcs = glob([
"lib/Lex/*.cpp",
"lib/Lex/*.h",
]),
hdrs = glob([
"include/clang/Lex/*.h",
]),
includes = ["include"],
deps = [
":basic",
"//llvm:Support",
],
)
gentbl(
name = "ast_attr_gen",
tbl_outs = [
(
"-gen-clang-attr-ast-visitor",
"include/clang/AST/AttrVisitor.inc",
),
(
"-gen-clang-attr-classes",
"include/clang/AST/Attrs.inc",
),
(
"-gen-clang-attr-doc-table",
"lib/AST/AttrDocTable.inc",
),
(
"-gen-clang-attr-text-node-dump",
"include/clang/AST/AttrTextNodeDump.inc",
),
(
"-gen-clang-attr-node-traverse",
"include/clang/AST/AttrNodeTraverse.inc",
),
(
"-gen-clang-attr-impl",
"include/clang/AST/AttrImpl.inc",
),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/Attr.td",
td_srcs = [
"include/clang/Basic/Attr.td",
"include/clang/Basic/AttrDocs.td",
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/DeclNodes.td",
"include/clang/Basic/StmtNodes.td",
],
)
gentbl(
name = "ast_decl_nodes_gen",
tbl_outs = [(
"-gen-clang-decl-nodes",
"include/clang/AST/DeclNodes.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/DeclNodes.td",
td_srcs = [
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/DeclNodes.td",
],
)
gentbl(
name = "ast_stmt_nodes_gen",
tbl_outs = [(
"-gen-clang-stmt-nodes",
"include/clang/AST/StmtNodes.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/StmtNodes.td",
td_srcs = [
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/StmtNodes.td",
],
)
gentbl(
name = "ast_comment_nodes_gen",
tbl_outs = [(
"-gen-clang-comment-nodes",
"include/clang/AST/CommentNodes.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/CommentNodes.td",
td_srcs = [
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/CommentNodes.td",
],
)
gentbl(
name = "ast_comment_command_info_gen",
tbl_outs = [
(
"-gen-clang-comment-command-info",
"include/clang/AST/CommentCommandInfo.inc",
),
(
"-gen-clang-comment-command-list",
"include/clang/AST/CommentCommandList.inc",
),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/AST/CommentCommands.td",
td_srcs = ["include/clang/AST/CommentCommands.td"],
)
gentbl(
name = "ast_comment_html_tags_gen",
tbl_outs = [(
"-gen-clang-comment-html-tags",
"include/clang/AST/CommentHTMLTags.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/AST/CommentHTMLTags.td",
td_srcs = ["include/clang/AST/CommentHTMLTags.td"],
)
gentbl(
name = "ast_comment_html_tags_properties_gen",
tbl_outs = [(
"-gen-clang-comment-html-tags-properties",
"include/clang/AST/CommentHTMLTagsProperties.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/AST/CommentHTMLTags.td",
td_srcs = ["include/clang/AST/CommentHTMLTags.td"],
)
gentbl(
name = "ast_comment_html_named_character_references_gen",
tbl_outs = [(
"-gen-clang-comment-html-named-character-references",
"include/clang/AST/CommentHTMLNamedCharacterReferences.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/AST/CommentHTMLNamedCharacterReferences.td",
td_srcs = ["include/clang/AST/CommentHTMLNamedCharacterReferences.td"],
)
gentbl(
name = "ast_stmt_data_collectors_gen",
tbl_outs = [(
"-gen-clang-data-collectors",
"include/clang/AST/StmtDataCollectors.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/AST/StmtDataCollectors.td",
td_srcs = ["include/clang/AST/StmtDataCollectors.td"],
)
gentbl(
name = "ast_interp_opcodes_gen",
tbl_outs = [(
"-gen-clang-opcodes",
"lib/AST/Interp/Opcodes.inc",
)],
tblgen = ":clang-tblgen",
td_file = "lib/AST/Interp/Opcodes.td",
td_srcs = ["lib/AST/Interp/Opcodes.td"],
)
gentbl(
name = "ast_properties_base_gen",
tbl_outs = [
(
"-gen-clang-basic-reader",
"include/clang/AST/AbstractBasicReader.inc",
),
(
"-gen-clang-basic-writer",
"include/clang/AST/AbstractBasicWriter.inc",
),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/AST/PropertiesBase.td",
td_srcs = ["include/clang/AST/PropertiesBase.td"],
)
gentbl(
name = "ast_type_properties_gen",
tbl_outs = [
(
"-gen-clang-type-reader",
"include/clang/AST/AbstractTypeReader.inc",
),
(
"-gen-clang-type-writer",
"include/clang/AST/AbstractTypeWriter.inc",
),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/AST/TypeProperties.td",
td_srcs = [
"include/clang/AST/PropertiesBase.td",
"include/clang/AST/TypeProperties.td",
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/TypeNodes.td",
],
)
gentbl(
name = "type_nodes_gen",
tbl_outs = [(
"-gen-clang-type-nodes",
"include/clang/AST/TypeNodes.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/TypeNodes.td",
td_srcs = [
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/TypeNodes.td",
],
)
cc_library(
name = "ast",
srcs = glob([
"lib/AST/*.cpp",
"lib/AST/*.h",
"lib/AST/Interp/*.cpp",
"lib/AST/Interp/*.h",
]) + [
"lib/AST/AttrDocTable.inc",
"lib/AST/Interp/Opcodes.inc",
],
hdrs = glob([
"include/clang/AST/*.h",
]),
copts = [
# FIXME: This is necessary to allow "file relative" include paths from
# non-generated `srcs` to find generated `srcs` above. Bazel should
# either make this work automatically by creating a unified tree of
# `srcs` or at least provide a `local_includes` that has the path
# translation logic of `includes` but is only used locally (similar to
# `local_defines` vs. `defines`). Until one of those lands, this is the
# least bad approach. Using `includes` is *specifically* problematic for
# this library because it contains files that collide easily with system
# headers such as `CXXABI.h`.
"-I$(GENDIR)/external/llvm-project/clang/lib/AST",
"-I$(GENDIR)/external/llvm-project/clang/lib/AST/Interp",
],
textual_hdrs = [
"include/clang/AST/AttrImpl.inc",
"include/clang/AST/AttrNodeTraverse.inc",
"include/clang/AST/Attrs.inc",
"include/clang/AST/AttrTextNodeDump.inc",
"include/clang/AST/AttrVisitor.inc",
"include/clang/AST/CommentCommandInfo.inc",
"include/clang/AST/CommentCommandList.inc",
"include/clang/AST/CommentHTMLNamedCharacterReferences.inc",
"include/clang/AST/CommentHTMLTags.inc",
"include/clang/AST/CommentHTMLTagsProperties.inc",
"include/clang/AST/CommentNodes.inc",
"include/clang/AST/DeclNodes.inc",
"include/clang/AST/StmtDataCollectors.inc",
"include/clang/AST/StmtNodes.inc",
] + glob([
"include/clang/AST/*.def",
]),
deps = [
":ast_attr_gen",
":ast_comment_command_info_gen",
":ast_comment_html_named_character_references_gen",
":ast_comment_html_tags_gen",
":ast_comment_html_tags_properties_gen",
":ast_comment_nodes_gen",
":ast_decl_nodes_gen",
":ast_interp_opcodes_gen",
":ast_properties_base_gen",
":ast_stmt_data_collectors_gen",
":ast_stmt_nodes_gen",
":ast_type_properties_gen",
":basic",
":lex",
":type_nodes_gen",
"//llvm:BinaryFormat",
"//llvm:Core",
"//llvm:FrontendOpenMP",
"//llvm:Support",
],
)
cc_library(
name = "index",
srcs = glob([
"lib/Index/*.cpp",
"lib/Index/*.h",
]),
hdrs = glob([
"include/clang/Index/*.h",
"include/clang-c/*.h",
]),
includes = ["include"],
deps = [
":ast",
":basic",
":format",
":frontend",
":lex",
":rewrite",
":serialization",
"//llvm:Core",
"//llvm:Support",
],
)
cc_library(
name = "analysis",
srcs = glob([
"lib/Analysis/*.cpp",
"lib/Analysis/*.h",
]),
hdrs = glob([
"include/clang/Analysis/**/*.h",
]),
includes = ["include"],
textual_hdrs = glob([
"include/clang/Analysis/**/*.def",
]),
deps = [
":ast",
":ast_matchers",
":basic",
":lex",
"//llvm:Support",
],
)
gentbl(
name = "sema_attr_gen",
tbl_outs = [
(
"-gen-clang-attr-parsed-attr-impl",
"include/clang/Sema/AttrParsedAttrImpl.inc",
),
(
"-gen-clang-attr-parsed-attr-kinds",
"include/clang/Sema/AttrParsedAttrKinds.inc",
),
(
"-gen-clang-attr-parsed-attr-list",
"include/clang/Sema/AttrParsedAttrList.inc",
),
(
"-gen-clang-attr-spelling-index",
"include/clang/Sema/AttrSpellingListIndex.inc",
),
(
"-gen-clang-attr-template-instantiate",
"include/clang/Sema/AttrTemplateInstantiate.inc",
),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/Attr.td",
td_srcs = [
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/Attr.td",
"include/clang/Basic/AttrDocs.td",
"include/clang/Basic/DeclNodes.td",
"include/clang/Basic/StmtNodes.td",
],
)
cc_library(
name = "sema",
srcs = glob([
"lib/Sema/*.cpp",
"lib/Sema/*.h",
]),
hdrs = glob([
"include/clang/Sema/*.h",
"include/clang-c/*.h",
]),
copts = ["$(STACK_FRAME_UNLIMITED)"],
includes = ["include"],
textual_hdrs = [
"include/clang/Sema/AttrParsedAttrImpl.inc",
"include/clang/Sema/AttrParsedAttrKinds.inc",
"include/clang/Sema/AttrParsedAttrList.inc",
"include/clang/Sema/AttrSpellingListIndex.inc",
"include/clang/Sema/AttrTemplateInstantiate.inc",
"lib/Sema/OpenCLBuiltins.inc",
],
deps = [
":analysis",
":ast",
":basic",
":basic_arm_cde_aliases_gen",
":basic_arm_cde_sema_gen",
":basic_arm_sve_builtins_gen",
":basic_arm_sve_sema_rangechecks_gen",
":edit",
":lex",
":libsema_openclbuiltins_inc_gen",
":sema_attr_gen",
":type_nodes_gen",
"//llvm:AllTargetsAsmParsers",
"//llvm:AllTargetsCodeGens",
"//llvm:Core",
"//llvm:FrontendOpenMP",
"//llvm:MC",
"//llvm:MCParser",
"//llvm:Support",
],
)
gentbl(
name = "parse_attr_gen",
tbl_outs = [
(
"-gen-clang-attr-parser-string-switches",
"include/clang/Parse/AttrParserStringSwitches.inc",
),
(
"-gen-clang-attr-subject-match-rules-parser-string-switches",
"include/clang/Parse/AttrSubMatchRulesParserStringSwitches.inc",
),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/Attr.td",
td_srcs = [
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/Attr.td",
"include/clang/Basic/AttrDocs.td",
"include/clang/Basic/DeclNodes.td",
"include/clang/Basic/StmtNodes.td",
],
)
cc_library(
name = "parse",
srcs = [
] + glob([
"lib/Parse/*.cpp",
"lib/Parse/*.h",
]),
hdrs = [
"include/clang/Parse/AttrParserStringSwitches.inc",
"include/clang/Parse/AttrSubMatchRulesParserStringSwitches.inc",
] + glob(["include/clang/Parse/*.h"]),
includes = ["include"],
deps = [
":ast",
":basic",
":lex",
":parse_attr_gen",
":sema",
"//llvm:FrontendOpenMP",
"//llvm:MC",
"//llvm:MCParser",
"//llvm:Support",
],
)
cc_library(
name = "ast_matchers",
srcs = glob([
"lib/ASTMatchers/*.cpp",
"lib/ASTMatchers/*.h",
]),
hdrs = glob(["include/clang/ASTMatchers/*.h"]),
includes = ["include"],
deps = [
":ast",
":basic",
":lex",
"//llvm:Support",
],
)
cc_library(
name = "ast_matchers_dynamic",
srcs = glob([
"lib/ASTMatchers/Dynamic/*.cpp",
"lib/ASTMatchers/Dynamic/*.h",
]),
hdrs = glob(["include/clang/ASTMatchers/Dynamic/*.h"]),
copts = ["$(STACK_FRAME_UNLIMITED)"],
includes = ["include"],
deps = [
":ast",
":ast_matchers",
":basic",
"//llvm:FrontendOpenMP",
"//llvm:Support",
],
)
cc_library(
name = "rewrite",
srcs = glob([
"lib/Rewrite/*.cpp",
"lib/Rewrite/*.h",
]),
hdrs = glob(["include/clang/Rewrite/Core/*.h"]),
includes = ["include"],
deps = [
":ast",
":basic",
":edit",
":lex",
"//llvm:Support",
],
)
cc_library(
name = "testing",
srcs = glob([
"lib/Testing/*.cpp",
]),
hdrs = glob(["include/clang/Testing/*.h"]),
includes = ["include"],
deps = [
":basic",
"//llvm:Support",
],
)
cc_library(
name = "tooling_core",
srcs = glob([
"lib/Tooling/Core/*.cpp",
"lib/Tooling/Core/*.h",
]),
hdrs = glob(["include/clang/Tooling/Core/*.h"]),
includes = ["include"],
deps = [
":ast",
":basic",
":lex",
":rewrite",
"//llvm:Support",
],
)
cc_library(
name = "tooling",
srcs = glob(
[
"lib/Tooling/*.cpp",
],
# Temporarily disable until we support the generated file.
exclude = ["lib/Tooling/NodeIntrospection.cpp"],
),
hdrs = glob([
"include/clang/Tooling/*.h",
]),
includes = ["include"],
deps = [
":ast",
":ast_matchers",
":basic",
":driver",
":format",
":frontend",
":lex",
":rewrite",
":tooling_core",
"//llvm:Option",
"//llvm:Support",
],
)
cc_library(
name = "tooling_inclusions",
srcs = glob([
"lib/Tooling/Inclusions/**/*.cpp",
]),
hdrs = glob([
"include/clang/Tooling/Inclusions/**/*.h",
]),
deps = [
":basic",
":lex",
":rewrite",
":tooling_core",
"//llvm:Support",
],
)
cc_library(
name = "tooling_refactoring",
srcs = glob([
"lib/Tooling/Refactoring/**/*.cpp",
"lib/Tooling/Refactoring/**/*.h",
]),
hdrs = glob([
"include/clang/Tooling/Refactoring/**/*.h",
"include/clang/Tooling/Refactoring/**/*.def",
]),
deps = [
":ast",
":ast_matchers",
":basic",
":format",
":frontend",
":index",
":lex",
":rewrite",
":tooling",
":tooling_core",
"//llvm:Support",
],
)
gentbl(
name = "tooling_syntax_gen",
tbl_outs = [
("-gen-clang-syntax-node-list", "include/clang/Tooling/Syntax/Nodes.inc"),
("-gen-clang-syntax-node-classes", "include/clang/Tooling/Syntax/NodeClasses.inc"),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/Tooling/Syntax/Nodes.td",
td_srcs = [
"include/clang/Tooling/Syntax/Nodes.td",
"include/clang/Tooling/Syntax/Syntax.td",
],
)
cc_library(
name = "tooling_syntax",
srcs = glob(["lib/Tooling/Syntax/**/*.cpp"]),
hdrs = glob(["include/clang/Tooling/Syntax/**/*.h"]),
deps = [
":ast",
":basic",
":lex",
":tooling_core",
":tooling_syntax_gen",
"//llvm:Support",
],
)
cc_library(
name = "tooling_dependency_scanning",
srcs = glob(["lib/Tooling/DependencyScanning/**/*.cpp"]),
hdrs = glob(["include/clang/Tooling/DependencyScanning/**/*.h"]),
deps = [
":basic",
":codegen",
":frontend",
":lex",
":serialization",
":tooling",
"//llvm:Support",
],
)
cc_library(
name = "transformer",
srcs = glob(["lib/Tooling/Transformer/**/*.cpp"]),
hdrs = glob(["include/clang/Tooling/Transformer/**/*.h"]),
deps = [
":ast",
":ast_matchers",
":basic",
":lex",
":rewrite",
":tooling_refactoring",
"//llvm:Support",
],
)
cc_library(
name = "ast-diff",
srcs = glob(["lib/Tooling/ASTDiff/*.cpp"]),
hdrs = glob(["include/clang/Tooling/ASTDiff/*.h"]),
deps = [
":ast",
":basic",
":lex",
"//llvm:Support",
],
)
cc_library(
name = "crosstu",
srcs = glob(["lib/CrossTU/*.cpp"]),
hdrs = glob(["include/clang/CrossTU/*.h"]),
deps = [
":ast",
":basic",
":frontend",
":index",
"//llvm:Option",
"//llvm:Support",
],
)
cc_library(
name = "format",
srcs = glob(
[
"lib/Format/*.cpp",
"lib/Format/*.h",
],
),
hdrs = [
"lib/Format/FormatTokenLexer.h",
"lib/Format/Macros.h",
] + glob([
"include/clang/Format/*.h",
]),
includes = ["include"],
deps = [
":basic",
":lex",
":tooling_core",
":tooling_inclusions",
"//llvm:Support",
],
)
cc_library(
name = "edit",
srcs = glob(["lib/Edit/*.cpp"]),
hdrs = glob(["include/clang/Edit/*.h"]),
includes = ["include"],
deps = [
":ast",
":basic",
":lex",
"//llvm:Support",
],
)
cc_library(
name = "static_analyzer_core_options",
hdrs = [
"include/clang/StaticAnalyzer/Core/AnalyzerOptions.h",
],
textual_hdrs = [
"include/clang/StaticAnalyzer/Core/Analyses.def",
"include/clang/StaticAnalyzer/Core/AnalyzerOptions.def",
],
deps = [
":basic",
":static_analyzer_checkers_gen",
"//llvm:Support",
],
)
cc_library(
name = "static_analyzer_core",
srcs = glob([
"lib/StaticAnalyzer/Core/**/*.cpp",
"lib/StaticAnalyzer/Core/**/*.h",
]),
hdrs = glob([
"include/clang/StaticAnalyzer/Core/**/*.h",
]),
includes = ["include"],
textual_hdrs = glob([
"include/clang/StaticAnalyzer/Core/**/*.def",
]),
deps = [
":analysis",
":ast",
":ast_matchers",
":basic",
":crosstu",
":driver",
":frontend",
":lex",
":rewrite",
":static_analyzer_checkers_gen",
":tooling",
":tooling_core",
"//llvm:Support",
],
)
gentbl(
name = "static_analyzer_checkers_gen",
tbl_outs = [(
"-gen-clang-sa-checkers",
"include/clang/StaticAnalyzer/Checkers/Checkers.inc",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/StaticAnalyzer/Checkers/Checkers.td",
td_srcs = [
"include/clang/StaticAnalyzer/Checkers/CheckerBase.td",
"include/clang/StaticAnalyzer/Checkers/Checkers.td",
],
)
cc_library(
name = "static_analyzer_checkers",
srcs = glob([
"lib/StaticAnalyzer/Checkers/**/*.cpp",
"lib/StaticAnalyzer/Checkers/**/*.h",
]),
hdrs = [
"include/clang/StaticAnalyzer/Checkers/Checkers.inc",
] + glob([
"include/clang/StaticAnalyzer/Checkers/**/*.h",
]),
copts = ["$(STACK_FRAME_UNLIMITED)"],
includes = ["include"],
deps = [
":analysis",
":ast",
":ast_matchers",
":basic",
":driver",
":lex",
":static_analyzer_checkers_gen",
":static_analyzer_core",
"//llvm:Support",
],
)
gentbl(
name = "driver_options_inc_gen",
tbl_outs = [(
"-gen-opt-parser-defs",
"include/clang/Driver/Options.inc",
)],
tblgen = "//llvm:llvm-tblgen",
td_file = "include/clang/Driver/Options.td",
td_srcs = [
"//llvm:include/llvm/Option/OptParser.td",
],
)
cc_library(
name = "driver",
srcs = glob(
[
"lib/Driver/*.cpp",
"lib/Driver/*.h",
"lib/Driver/Arch/*.cpp",
"lib/Driver/Arch/*.h",
"lib/Driver/ToolChains/*.cpp",
"lib/Driver/ToolChains/*.h",
"lib/Driver/ToolChains/Arch/*.cpp",
"lib/Driver/ToolChains/Arch/*.h",
],
exclude = [
"lib/Driver/ToolChains/MSVCSetupApi.h",
],
),
hdrs = glob([
"include/clang/Driver/*.h",
]),
copts = ["$(STACK_FRAME_UNLIMITED)"],
includes = [
"include",
# TODO: This is likely a layering issue, but files in Arch are currently
# directly #including "Tools.h".
"lib/Driver",
],
linkopts = select({
"@bazel_tools//src/conditions:windows": ["version.lib"],
"//conditions:default": [],
}),
textual_hdrs = glob([
"include/clang/Driver/*.def",
]),
deps = [
":ast",
":basic",
":config",
":driver_options_inc_gen",
":parse",
":static_analyzer_checkers_gen",
"//llvm:BinaryFormat",
"//llvm:MC",
"//llvm:Option",
"//llvm:ProfileData",
"//llvm:Support",
"//llvm:Target",
"//llvm:config",
],
)
gentbl(
name = "headers_arm_neon_gen",
tbl_outs = [(
"-gen-arm-neon",
"lib/Headers/arm_neon.h",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_neon.td",
td_srcs = [
"include/clang/Basic/arm_neon.td",
"include/clang/Basic/arm_neon_incl.td",
],
)
gentbl(
name = "headers_arm_fp16_gen",
tbl_outs = [(
"-gen-arm-fp16",
"lib/Headers/arm_fp16.h",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_fp16.td",
td_srcs = [
"include/clang/Basic/arm_fp16.td",
"include/clang/Basic/arm_neon_incl.td",
],
)
gentbl(
name = "headers_arm_mve_gen",
tbl_outs = [(
"-gen-arm-mve-header",
"lib/Headers/arm_mve.h",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_mve.td",
td_srcs = [
"include/clang/Basic/arm_mve.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "headers_arm_cde_gen",
tbl_outs = [(
"-gen-arm-cde-header",
"lib/Headers/arm_cde.h",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_cde.td",
td_srcs = [
"include/clang/Basic/arm_cde.td",
"include/clang/Basic/arm_mve_defs.td",
],
)
gentbl(
name = "headers_arm_sve_gen",
tbl_outs = [(
"-gen-arm-sve-header",
"lib/Headers/arm_sve.h",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_sve.td",
td_srcs = [
"include/clang/Basic/arm_sve.td",
],
)
gentbl(
name = "headers_arm_bf16_gen",
tbl_outs = [(
"-gen-arm-bf16",
"lib/Headers/arm_bf16.h",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/arm_bf16.td",
td_srcs = [
"include/clang/Basic/arm_bf16.td",
"include/clang/Basic/arm_neon_incl.td",
],
)
gentbl(
name = "headers_riscv_vector",
tbl_outs = [(
"-gen-riscv-vector-header",
"lib/Headers/riscv_vector.h",
)],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/riscv_vector.td",
td_srcs = [
"include/clang/Basic/riscv_vector.td",
],
)
# We generate the set of builtin headers under a special subdirectory in the
# 'bin' section of the bazel output so that they can be used as data
# dependencies. It requires listing explicitly all the generated inputs here.
builtin_headers = glob(["lib/Headers/**/*.h"]) + [
"lib/Headers/arm_cde.h",
"lib/Headers/arm_fp16.h",
"lib/Headers/arm_mve.h",
"lib/Headers/arm_neon.h",
"lib/Headers/arm_sve.h",
"lib/Headers/arm_bf16.h",
"lib/Headers/riscv_vector.h",
]
genrule(
name = "builtin_headers_gen",
srcs = builtin_headers,
outs = [hdr.replace("lib/Headers/", "staging/include/") for hdr in builtin_headers],
cmd = """
for src in $(SRCS); do
relsrc=$${src/*external\\/llvm-project\\/clang\\/lib\\/Headers\\/}
target=$(@D)/staging/include/$$relsrc
mkdir -p $$(dirname $$target)
cp $$src $$target
done""",
output_to_bindir = 1,
)
cc_library(
name = "frontend",
srcs = glob([
"lib/Frontend/*.cpp",
"lib/Frontend/*.h",
]),
hdrs = glob([
"include/clang/Frontend/*.h",
]),
copts = ["$(STACK_FRAME_UNLIMITED)"],
data = [":builtin_headers_gen"],
includes = ["include"],
textual_hdrs = glob([
"include/clang/Frontend/*.def",
]),
deps = [
":ast",
":basic",
":config",
":driver",
":driver_options_inc_gen",
":edit",
":lex",
":parse",
":sema",
":serialization",
":static_analyzer_core_options",
"//llvm:BinaryFormat",
"//llvm:BitReader",
"//llvm:BitstreamReader",
"//llvm:BitstreamWriter",
"//llvm:Core",
"//llvm:Linker",
"//llvm:MC",
"//llvm:Option",
"//llvm:ProfileData",
"//llvm:Support",
"//llvm:Target",
"//llvm:config",
],
)
cc_library(
name = "frontend_rewrite",
srcs = glob([
"lib/Frontend/Rewrite/*.cpp",
"lib/Frontend/Rewrite/*.h",
]),
hdrs = glob(["include/clang/Rewrite/Frontend/*.h"]),
includes = ["include"],
deps = [
":ast",
":basic",
":config",
":edit",
":frontend",
":lex",
":parse",
":rewrite",
":serialization",
"//llvm:Support",
],
)
cc_library(
name = "interpreter",
srcs = glob([
"lib/Interpreter/*.cpp",
"lib/Interpreter/*.h",
]),
hdrs = glob(["include/clang/Interpreter/*.h"]),
includes = ["include"],
deps = [
":analysis",
":ast",
":basic",
":codegen",
":driver",
":edit",
":frontend",
":frontend_tool",
":lex",
":parse",
":sema",
":serialization",
"//llvm:AllTargetsAsmParsers",
"//llvm:AllTargetsCodeGens",
"//llvm:Core",
"//llvm:ExecutionEngine",
"//llvm:Option",
"//llvm:OrcJIT",
"//llvm:Support",
"//llvm:Target",
],
)
cc_library(
name = "codegen",
srcs = glob([
"lib/CodeGen/*.cpp",
"lib/CodeGen/*.h",
]),
hdrs = glob(["include/clang/CodeGen/*.h"]),
copts = ["$(STACK_FRAME_UNLIMITED)"],
includes = ["include"],
deps = [
":analysis",
":ast",
":basic",
":basic_arm_cde_cg_gen",
":basic_arm_sve_builtin_cg_gen",
":basic_riscv_vector_builtin_cg_gen",
":driver",
":frontend",
":lex",
":sema",
":type_nodes_gen",
"//llvm:AllTargetsAsmParsers",
"//llvm:Analysis",
"//llvm:BitReader",
"//llvm:BitWriter",
"//llvm:BitstreamReader",
"//llvm:CodeGen",
"//llvm:Core",
"//llvm:Coroutines",
"//llvm:Coverage",
"//llvm:DebugInfoDWARF",
"//llvm:Demangle",
"//llvm:FrontendOpenMP",
"//llvm:IPO",
"//llvm:IRReader",
"//llvm:InstCombine",
"//llvm:Instrumentation",
"//llvm:LTO",
"//llvm:Linker",
"//llvm:MC",
"//llvm:ObjCARC",
"//llvm:Object",
"//llvm:Passes",
"//llvm:ProfileData",
"//llvm:Scalar",
"//llvm:Support",
"//llvm:Target",
"//llvm:TransformUtils",
],
)
cc_library(
name = "static_analyzer_frontend",
srcs = glob([
"lib/StaticAnalyzer/Frontend/**/*.cpp",
"lib/StaticAnalyzer/Frontend/**/*.h",
]),
hdrs = glob(["include/clang/StaticAnalyzer/Frontend/**/*.h"]),
includes = ["include"],
deps = [
":analysis",
":ast",
":basic",
":crosstu",
":driver",
":frontend",
":lex",
":rewrite",
":serialization",
":static_analyzer_checkers",
":static_analyzer_core",
":tooling",
":tooling_core",
"//llvm:Support",
],
)
gentbl(
name = "serialization_attr_gen",
tbl_outs = [
(
"-gen-clang-attr-pch-read",
"include/clang/Serialization/AttrPCHRead.inc",
),
(
"-gen-clang-attr-pch-write",
"include/clang/Serialization/AttrPCHWrite.inc",
),
],
tblgen = ":clang-tblgen",
td_file = "include/clang/Basic/Attr.td",
td_srcs = [
"include/clang/Basic/ASTNode.td",
"include/clang/Basic/Attr.td",
"include/clang/Basic/AttrDocs.td",
"include/clang/Basic/DeclNodes.td",
"include/clang/Basic/StmtNodes.td",
],
)
cc_library(
name = "serialization",
srcs = [
"include/clang/Serialization/AttrPCHRead.inc",
"include/clang/Serialization/AttrPCHWrite.inc",
] + glob([
"lib/Serialization/*.cpp",
"lib/Serialization/*.h",
]),
hdrs = glob([
"include/clang/Serialization/*.h",
]),
includes = ["include"],
textual_hdrs = glob([
"include/clang/Serialization/*.def",
]),
deps = [
":ast",
":basic",
":lex",
":sema",
":serialization_attr_gen",
":type_nodes_gen",
"//llvm:BitReader",
"//llvm:BitWriter",
"//llvm:BitstreamReader",
"//llvm:BitstreamWriter",
"//llvm:FrontendOpenMP",
"//llvm:Support",
],
)
cc_library(
name = "frontend_tool",
srcs = glob([
"lib/FrontendTool/*.cpp",
"lib/FrontendTool/*.h",
]),
hdrs = glob(["include/clang/FrontendTool/*.h"]),
includes = ["include"],
deps = [
":arc_migrate",
":codegen",
":config",
":driver",
":frontend",
":frontend_rewrite",
":static_analyzer_frontend",
"//llvm:Option",
"//llvm:Support",
],
)
cc_library(
name = "arc_migrate",
srcs = glob([
"lib/ARCMigrate/*.cpp",
"lib/ARCMigrate/*.h",
]),
hdrs = glob(["include/clang/ARCMigrate/*.h"]),
includes = ["include"],
deps = [
":analysis",
":ast",
":basic",
":edit",
":frontend",
":frontend_rewrite",
":lex",
":parse",
":rewrite",
":sema",
":serialization",
":static_analyzer_checkers",
":static_analyzer_core",
"//llvm:Support",
],
)
cc_library(
name = "libclang_static",
srcs = glob([
"tools/libclang/*.cpp",
"tools/libclang/*.h",
]),
hdrs = glob(["include/clang-c/*.h"]),
defines = ["CINDEX_NO_EXPORTS"],
deps = [
":arc_migrate",
":ast",
":basic",
":codegen",
":config",
":driver",
":frontend",
":index",
":lex",
":rewrite",
":sema",
":tooling",
"//llvm:BitstreamReader",
"//llvm:FrontendOpenMP",
"//llvm:Support",
"//llvm:config",
],
)
cc_plugin_library(
name = "libclang",
srcs = glob([
"tools/libclang/*.cpp",
"tools/libclang/*.h",
]),
hdrs = glob(["include/clang-c/*.h"]),
copts = select({
"@bazel_tools//src/conditions:windows": ["-D_CINDEX_LIB_"],
"//conditions:default": [],
}),
strip_include_prefix = "include",
deps = [
":arc_migrate",
":ast",
":basic",
":codegen",
":config",
":driver",
":frontend",
":index",
":lex",
":rewrite",
":sema",
":tooling",
"//llvm:BitstreamReader",
"//llvm:FrontendOpenMP",
"//llvm:Support",
"//llvm:config",
],
)
filegroup(
name = "python-sources",
srcs = [
"bindings/python/clang/cindex.py",
"bindings/python/clang/enumerations.py",
],
)
filegroup(
name = "python-cindex-examples",
srcs = [
"bindings/python/examples/cindex/cindex-dump.py",
"bindings/python/examples/cindex/cindex-includes.py",
],
)
cc_binary(
name = "c-index-test",
testonly = 1,
srcs = [
"tools/c-index-test/c-index-test.c",
"tools/c-index-test/core_main.cpp",
],
copts = [
"-Wno-uninitialized",
],
stamp = 0,
deps = [
":ast",
":basic",
":codegen",
":config",
":frontend",
":index",
":lex",
":libclang",
":serialization",
"//llvm:Core",
"//llvm:MC",
"//llvm:Support",
],
)
cc_binary(
name = "arcmt-test",
testonly = 1,
srcs = ["tools/arcmt-test/arcmt-test.cpp"],
stamp = 0,
deps = [
":arc_migrate",
":ast",
":basic",
":frontend",
":frontend_rewrite",
":lex",
"//llvm:Support",
],
)
cc_binary(
name = "c-arcmt-test",
testonly = 1,
srcs = ["tools/c-arcmt-test/c-arcmt-test.c"],
copts = select({
"@bazel_tools//src/conditions:windows": [],
"//conditions:default": ["-std=gnu99"],
}),
stamp = 0,
deps = [
":codegen",
":libclang",
"//llvm:MC",
"//llvm:Support",
],
)
cc_binary(
name = "clang-import-test",
testonly = 1,
srcs = glob([
"tools/clang-import-test/*.cpp",
"tools/clang-import-test/*.h",
]),
stamp = 0,
deps = [
":ast",
":basic",
":codegen",
":driver",
":frontend",
":lex",
":parse",
"//llvm:Core",
"//llvm:Support",
],
)
cc_library(
name = "clang-driver",
srcs = glob([
"tools/driver/*.cpp",
"tools/driver/*.h",
]),
copts = [
# Disable stack frame size checks in the driver because
# clang::ensureStackAddressSpace allocates a large array on the stack.
"$(STACK_FRAME_UNLIMITED)",
],
deps = [
":analysis",
":ast",
":basic",
":codegen",
":config",
":driver",
":frontend",
":frontend_rewrite",
":frontend_tool",
":lex",
":parse",
":sema",
":serialization",
":static_analyzer_frontend",
"//llvm:AllTargetsAsmParsers",
"//llvm:AllTargetsCodeGens",
"//llvm:BitReader",
"//llvm:BitWriter",
"//llvm:CodeGen",
"//llvm:Core",
"//llvm:IPO",
"//llvm:MC",
"//llvm:MCParser",
"//llvm:Option",
"//llvm:Support",
"//llvm:Target",
"//llvm:config",
],
)
cc_binary(
name = "clang",
srcs = [],
stamp = 0,
deps = [
":clang-driver",
],
)
cc_binary(
name = "diagtool",
srcs = glob([
"tools/diagtool/*.cpp",
"tools/diagtool/*.h",
]),
stamp = 0,
deps = [
":basic",
":frontend",
":lex",
":sema",
"//llvm:Support",
],
)
filegroup(
name = "exploded_graph_rewriter",
testonly = 1,
data = ["utils/analyzer/exploded-graph-rewriter.py"],
)
filegroup(
name = "module-deps-to-rsp",
testonly = 1,
data = ["utils/module-deps-to-rsp.py"],
)
filegroup(
name = "hmaptool",
testonly = 1,
data = ["utils/hmaptool/hmaptool"],
)
binary_alias(
name = "clang++",
binary = ":clang",
)
cc_binary(
name = "clang-check",
srcs = ["tools/clang-check/ClangCheck.cpp"],
stamp = 0,
deps = [
":ast",
":codegen",
":driver",
":frontend",
":frontend_rewrite",
":serialization",
":static_analyzer_frontend",
":tooling",
":tooling_syntax",
"//llvm:Option",
"//llvm:Support",
],
)
cc_binary(
name = "clang-format",
srcs = [
"tools/clang-format/ClangFormat.cpp",
],
stamp = 0,
deps = [
":basic",
":format",
":frontend",
":rewrite",
"//llvm:Support",
],
)
cc_binary(
name = "clang-diff",
srcs = glob(["tools/clang-diff/*.cpp"]),
stamp = 0,
deps = [
":ast-diff",
":tooling",
"//llvm:Support",
],
)
cc_binary(
name = "clang-offload-bundler",
srcs = glob(["tools/clang-offload-bundler/*.cpp"]),
stamp = 0,
deps = [
":basic",
":tooling",
"//llvm:BitWriter",
"//llvm:Core",
"//llvm:Object",
"//llvm:Support",
],
)
cc_binary(
name = "clang-offload-wrapper",
srcs = glob(["tools/clang-offload-wrapper/*.cpp"]),
stamp = 0,
deps = [
":basic",
"//llvm:BitWriter",
"//llvm:Support",
"//llvm:TransformUtils",
"//llvm:ir_headers",
],
)
cc_binary(
name = "clang-refactor",
srcs = glob([
"tools/clang-refactor/*.cpp",
"tools/clang-refactor/*.h",
]),
stamp = 0,
deps = [
":ast",
":basic",
":format",
":frontend",
":lex",
":rewrite",
":tooling",
":tooling_refactoring",
"//llvm:Support",
],
)
cc_binary(
name = "clang-rename",
srcs = glob(["tools/clang-rename/*.cpp"]),
stamp = 0,
deps = [
":basic",
":frontend",
":rewrite",
":tooling",
":tooling_refactoring",
"//llvm:Support",
],
)
cc_binary(
name = "clang-repl",
srcs = glob(["tools/clang-repl/*.cpp"]),
stamp = 0,
deps = [
":basic",
":frontend",
":interpreter",
":tooling",
"//llvm:Core",
"//llvm:LineEditor",
"//llvm:Option",
"//llvm:OrcJIT",
"//llvm:Support",
],
)
cc_binary(
name = "clang-extdef-mapping",
srcs = glob(["tools/clang-extdef-mapping/*.cpp"]),
stamp = 0,
deps = [
":ast",
":basic",
":crosstu",
":frontend",
":tooling",
"//llvm:Support",
],
)
cc_binary(
name = "clang-scan-deps",
srcs = glob(["tools/clang-scan-deps/*.cpp"]),
stamp = 0,
deps = [
":frontend",
":tooling",
":tooling_dependency_scanning",
"//llvm:Support",
],
)