# Part of the Carbon Language project, under the Apache License v2.0 with LLVM # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception load("//bazel/cc_rules:defs.bzl", "cc_library", "cc_test") package(default_visibility = ["//visibility:public"]) cc_library( name = "typed_insts", srcs = [ "ids.cpp", "inst_kind.cpp", ], hdrs = [ "id_kind.h", "ids.h", "inst_categories.h", "inst_kind.h", "singleton_insts.h", "specific_interface.h", "specific_named_constraint.h", "typed_insts.h", ], textual_hdrs = ["inst_kind.def"], deps = [ "//common:check", "//common:enum_base", "//common:ostream", "//common:template_string", "//common:type_enum", "//toolchain/base:canonical_value_store", "//toolchain/base:index_base", "//toolchain/base:int", "//toolchain/base:value_ids", "//toolchain/diagnostics:emitter", "//toolchain/parse:node_kind", "@llvm-project//llvm:Support", ], ) cc_test( name = "ids_test", srcs = ["ids_test.cpp"], deps = [ ":typed_insts", "//testing/base:gtest_main", "@googletest//:gtest", ], ) cc_library( name = "clang_decl", srcs = ["clang_decl.cpp"], hdrs = ["clang_decl.h"], deps = [ ":typed_insts", "//common:hashtable_key_context", "//common:ostream", "//common:raw_string_ostream", "//toolchain/base:canonical_value_store", "@llvm-project//clang:ast", ], ) cc_library( name = "cpp_file", hdrs = ["cpp_file.h"], deps = [ "//common:check", "@llvm-project//clang:ast", "@llvm-project//clang:basic", "@llvm-project//clang:codegen", "@llvm-project//clang:frontend", "@llvm-project//clang:lex", "@llvm-project//clang:sema", "@llvm-project//llvm:Core", "@llvm-project//llvm:Support", ], ) cc_library( name = "file", srcs = [ "builtin_function_kind.cpp", "class.cpp", "constant.cpp", "core_interface.cpp", "cpp_initializer_list.cpp", "facet_type_info.cpp", "file.cpp", "function.cpp", "generic.cpp", "impl.cpp", "import_ir.cpp", "inst.cpp", "name.cpp", "name_scope.cpp", "pattern.cpp", "type.cpp", "type_info.cpp", "type_iterator.cpp", ], hdrs = [ "associated_constant.h", "builtin_function_kind.h", "class.h", "constant.h", "copy_on_write_block.h", "core_interface.h", "cpp_global_var.h", "cpp_initializer_list.h", "cpp_overload_set.h", "entity_name.h", "entity_with_params_base.h", "facet_type_info.h", "file.h", "function.h", "generic.h", "impl.h", "import_cpp.h", "import_ir.h", "inst.h", "interface.h", "name.h", "name_scope.h", "named_constraint.h", "pattern.h", "require_impls.h", "struct_type_field.h", "type.h", "type_info.h", "type_iterator.h", "vtable.h", ], textual_hdrs = [ "builtin_function_kind.def", "core_interface_kind.def", ], deps = [ ":clang_decl", ":cpp_file", ":typed_insts", "//common:check", "//common:enum_base", "//common:enum_mask_base", "//common:error", "//common:hashing", "//common:map", "//common:ostream", "//common:raw_string_ostream", "//common:set", "//common:struct_reflection", "//toolchain/base:block_value_store", "//toolchain/base:canonical_value_store", "//toolchain/base:index_base", "//toolchain/base:int", "//toolchain/base:kind_switch", "//toolchain/base:relational_value_store", "//toolchain/base:shared_value_stores", "//toolchain/base:value_ids", "//toolchain/base:value_store", "//toolchain/base:yaml", "//toolchain/lex:token_kind", "//toolchain/parse:node_kind", "//toolchain/parse:tree", "@llvm-project//clang:ast", "@llvm-project//clang:frontend", "@llvm-project//clang:sema", "@llvm-project//llvm:Support", ], ) cc_library( name = "stringify", srcs = ["stringify.cpp"], hdrs = ["stringify.h"], deps = [ ":file", ":typed_insts", "//common:check", "//common:concepts", "//common:raw_string_ostream", "//toolchain/base:kind_switch", "@llvm-project//llvm:Support", ], ) cc_library( name = "inst_namer", srcs = [ "inst_fingerprinter.cpp", "inst_namer.cpp", ], hdrs = [ "inst_fingerprinter.h", "inst_namer.h", ], deps = [ ":file", ":typed_insts", "//common:concepts", "//common:ostream", "//common:raw_string_ostream", "//common:type_enum", "//toolchain/base:fixed_size_value_store", "//toolchain/base:kind_switch", "//toolchain/base:shared_value_stores", "//toolchain/base:value_ids", "//toolchain/lex:tokenized_buffer", "//toolchain/parse:tree", "@llvm-project//llvm:Support", ], ) cc_library( name = "formatter_chunks", srcs = ["formatter_chunks.cpp"], hdrs = ["formatter_chunks.h"], deps = [ "//common:check", "@llvm-project//llvm:Support", ], ) cc_library( name = "formatter", srcs = ["formatter.cpp"], hdrs = ["formatter.h"], deps = [ ":expr_info", ":file", ":formatter_chunks", ":inst_namer", ":typed_insts", "//common:concepts", "//common:ostream", "//toolchain/base:fixed_size_value_store", "//toolchain/base:kind_switch", "//toolchain/base:shared_value_stores", "//toolchain/lex:tokenized_buffer", "//toolchain/parse:tree", "@llvm-project//llvm:Support", ], ) cc_library( name = "entry_point", srcs = ["entry_point.cpp"], hdrs = ["entry_point.h"], deps = [ ":file", ":typed_insts", "@llvm-project//llvm:Support", ], ) cc_library( name = "absolute_node_ref", srcs = ["absolute_node_ref.cpp"], hdrs = ["absolute_node_ref.h"], deps = [ ":file", ":typed_insts", "//toolchain/parse:tree", "@llvm-project//llvm:Support", ], ) cc_library( name = "expr_info", srcs = ["expr_info.cpp"], hdrs = ["expr_info.h"], deps = [ ":file", ":typed_insts", "//common:check", "//toolchain/base:kind_switch", ], ) cc_library( name = "diagnostic_loc_converter", srcs = ["diagnostic_loc_converter.cpp"], hdrs = ["diagnostic_loc_converter.h"], deps = [ ":absolute_node_ref", ":file", ":typed_insts", "//toolchain/diagnostics:emitter", "//toolchain/parse:tree", "@llvm-project//clang:frontend", "@llvm-project//llvm:Support", ], ) cc_library( name = "dump", srcs = ["dump.cpp"], hdrs = ["dump.h"], deps = [ ":file", ":stringify", ":typed_insts", "//common:ostream", "//common:raw_string_ostream", ], # Always link dump methods so they are callable from a debugger # even though they are never called. alwayslink = 1, ) cc_test( name = "name_scope_test", size = "small", srcs = ["name_scope_test.cpp"], deps = [ ":file", "//testing/base:gtest_main", "@googletest//:gtest", ], ) cc_test( name = "typed_insts_test", size = "small", srcs = ["typed_insts_test.cpp"], deps = [ ":file", ":typed_insts", "//testing/base:gtest_main", "@googletest//:gtest", ], ) cc_test( name = "yaml_test", size = "small", srcs = ["yaml_test.cpp"], deps = [ "//common:all_llvm_targets", "//common:ostream", "//common:raw_string_ostream", "//testing/base:global_exe_path", "//testing/base:gtest_main", "//toolchain/driver", "//toolchain/testing:yaml_test_helpers", "@googletest//:gtest", "@llvm-project//llvm:Support", ], ) cc_library( name = "mangler", srcs = ["mangler.cpp"], hdrs = ["mangler.h"], deps = [ ":entry_point", ":file", ":inst_namer", ":typed_insts", "//common:raw_string_ostream", "//toolchain/base:kind_switch", "@llvm-project//clang:ast", "@llvm-project//llvm:Support", ], )