BUILD 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. # Part of the Carbon Language project, under the Apache License v2.0 with LLVM
  2. # Exceptions. See /LICENSE for license information.
  3. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. load("//bazel/cc_rules:defs.bzl", "cc_library", "cc_test")
  5. package(default_visibility = ["//visibility:public"])
  6. cc_library(
  7. name = "typed_insts",
  8. srcs = [
  9. "ids.cpp",
  10. "inst_kind.cpp",
  11. ],
  12. hdrs = [
  13. "id_kind.h",
  14. "ids.h",
  15. "inst_categories.h",
  16. "inst_kind.h",
  17. "singleton_insts.h",
  18. "specific_interface.h",
  19. "specific_named_constraint.h",
  20. "typed_insts.h",
  21. ],
  22. textual_hdrs = ["inst_kind.def"],
  23. deps = [
  24. "//common:check",
  25. "//common:enum_base",
  26. "//common:ostream",
  27. "//common:template_string",
  28. "//common:type_enum",
  29. "//toolchain/base:canonical_value_store",
  30. "//toolchain/base:index_base",
  31. "//toolchain/base:int",
  32. "//toolchain/base:value_ids",
  33. "//toolchain/diagnostics:emitter",
  34. "//toolchain/parse:node_kind",
  35. "@llvm-project//llvm:Support",
  36. ],
  37. )
  38. cc_test(
  39. name = "ids_test",
  40. srcs = ["ids_test.cpp"],
  41. deps = [
  42. ":typed_insts",
  43. "//testing/base:gtest_main",
  44. "@googletest//:gtest",
  45. ],
  46. )
  47. cc_library(
  48. name = "clang_decl",
  49. srcs = ["clang_decl.cpp"],
  50. hdrs = ["clang_decl.h"],
  51. deps = [
  52. ":typed_insts",
  53. "//common:hashtable_key_context",
  54. "//common:ostream",
  55. "//common:raw_string_ostream",
  56. "//toolchain/base:canonical_value_store",
  57. "@llvm-project//clang:ast",
  58. ],
  59. )
  60. cc_library(
  61. name = "cpp_file",
  62. hdrs = ["cpp_file.h"],
  63. deps = [
  64. "//common:check",
  65. "@llvm-project//clang:ast",
  66. "@llvm-project//clang:basic",
  67. "@llvm-project//clang:codegen",
  68. "@llvm-project//clang:frontend",
  69. "@llvm-project//clang:lex",
  70. "@llvm-project//clang:sema",
  71. "@llvm-project//llvm:Core",
  72. "@llvm-project//llvm:Support",
  73. ],
  74. )
  75. cc_library(
  76. name = "file",
  77. srcs = [
  78. "builtin_function_kind.cpp",
  79. "class.cpp",
  80. "constant.cpp",
  81. "core_interface.cpp",
  82. "cpp_initializer_list.cpp",
  83. "facet_type_info.cpp",
  84. "file.cpp",
  85. "function.cpp",
  86. "generic.cpp",
  87. "impl.cpp",
  88. "import_ir.cpp",
  89. "inst.cpp",
  90. "name.cpp",
  91. "name_scope.cpp",
  92. "pattern.cpp",
  93. "type.cpp",
  94. "type_info.cpp",
  95. "type_iterator.cpp",
  96. ],
  97. hdrs = [
  98. "associated_constant.h",
  99. "builtin_function_kind.h",
  100. "class.h",
  101. "constant.h",
  102. "copy_on_write_block.h",
  103. "core_interface.h",
  104. "cpp_global_var.h",
  105. "cpp_initializer_list.h",
  106. "cpp_overload_set.h",
  107. "entity_name.h",
  108. "entity_with_params_base.h",
  109. "facet_type_info.h",
  110. "file.h",
  111. "function.h",
  112. "generic.h",
  113. "impl.h",
  114. "import_cpp.h",
  115. "import_ir.h",
  116. "inst.h",
  117. "interface.h",
  118. "name.h",
  119. "name_scope.h",
  120. "named_constraint.h",
  121. "pattern.h",
  122. "require_impls.h",
  123. "struct_type_field.h",
  124. "type.h",
  125. "type_info.h",
  126. "type_iterator.h",
  127. "vtable.h",
  128. ],
  129. textual_hdrs = [
  130. "builtin_function_kind.def",
  131. "core_interface_kind.def",
  132. ],
  133. deps = [
  134. ":clang_decl",
  135. ":cpp_file",
  136. ":typed_insts",
  137. "//common:check",
  138. "//common:enum_base",
  139. "//common:enum_mask_base",
  140. "//common:error",
  141. "//common:hashing",
  142. "//common:map",
  143. "//common:ostream",
  144. "//common:raw_string_ostream",
  145. "//common:set",
  146. "//common:struct_reflection",
  147. "//toolchain/base:block_value_store",
  148. "//toolchain/base:canonical_value_store",
  149. "//toolchain/base:index_base",
  150. "//toolchain/base:int",
  151. "//toolchain/base:kind_switch",
  152. "//toolchain/base:relational_value_store",
  153. "//toolchain/base:shared_value_stores",
  154. "//toolchain/base:value_ids",
  155. "//toolchain/base:value_store",
  156. "//toolchain/base:yaml",
  157. "//toolchain/lex:token_kind",
  158. "//toolchain/parse:node_kind",
  159. "//toolchain/parse:tree",
  160. "@llvm-project//clang:ast",
  161. "@llvm-project//clang:frontend",
  162. "@llvm-project//clang:sema",
  163. "@llvm-project//llvm:Support",
  164. ],
  165. )
  166. cc_library(
  167. name = "stringify",
  168. srcs = ["stringify.cpp"],
  169. hdrs = ["stringify.h"],
  170. deps = [
  171. ":file",
  172. ":typed_insts",
  173. "//common:check",
  174. "//common:concepts",
  175. "//common:raw_string_ostream",
  176. "//toolchain/base:kind_switch",
  177. "@llvm-project//llvm:Support",
  178. ],
  179. )
  180. cc_library(
  181. name = "inst_namer",
  182. srcs = [
  183. "inst_fingerprinter.cpp",
  184. "inst_namer.cpp",
  185. ],
  186. hdrs = [
  187. "inst_fingerprinter.h",
  188. "inst_namer.h",
  189. ],
  190. deps = [
  191. ":file",
  192. ":typed_insts",
  193. "//common:concepts",
  194. "//common:ostream",
  195. "//common:raw_string_ostream",
  196. "//common:type_enum",
  197. "//toolchain/base:fixed_size_value_store",
  198. "//toolchain/base:kind_switch",
  199. "//toolchain/base:shared_value_stores",
  200. "//toolchain/base:value_ids",
  201. "//toolchain/lex:tokenized_buffer",
  202. "//toolchain/parse:tree",
  203. "@llvm-project//llvm:Support",
  204. ],
  205. )
  206. cc_library(
  207. name = "formatter_chunks",
  208. srcs = ["formatter_chunks.cpp"],
  209. hdrs = ["formatter_chunks.h"],
  210. deps = [
  211. "//common:check",
  212. "@llvm-project//llvm:Support",
  213. ],
  214. )
  215. cc_library(
  216. name = "formatter",
  217. srcs = ["formatter.cpp"],
  218. hdrs = ["formatter.h"],
  219. deps = [
  220. ":expr_info",
  221. ":file",
  222. ":formatter_chunks",
  223. ":inst_namer",
  224. ":typed_insts",
  225. "//common:concepts",
  226. "//common:ostream",
  227. "//toolchain/base:fixed_size_value_store",
  228. "//toolchain/base:kind_switch",
  229. "//toolchain/base:shared_value_stores",
  230. "//toolchain/lex:tokenized_buffer",
  231. "//toolchain/parse:tree",
  232. "@llvm-project//llvm:Support",
  233. ],
  234. )
  235. cc_library(
  236. name = "entry_point",
  237. srcs = ["entry_point.cpp"],
  238. hdrs = ["entry_point.h"],
  239. deps = [
  240. ":file",
  241. ":typed_insts",
  242. "@llvm-project//llvm:Support",
  243. ],
  244. )
  245. cc_library(
  246. name = "absolute_node_ref",
  247. srcs = ["absolute_node_ref.cpp"],
  248. hdrs = ["absolute_node_ref.h"],
  249. deps = [
  250. ":file",
  251. ":typed_insts",
  252. "//toolchain/parse:tree",
  253. "@llvm-project//llvm:Support",
  254. ],
  255. )
  256. cc_library(
  257. name = "expr_info",
  258. srcs = ["expr_info.cpp"],
  259. hdrs = ["expr_info.h"],
  260. deps = [
  261. ":file",
  262. ":typed_insts",
  263. "//common:check",
  264. "//toolchain/base:kind_switch",
  265. ],
  266. )
  267. cc_library(
  268. name = "diagnostic_loc_converter",
  269. srcs = ["diagnostic_loc_converter.cpp"],
  270. hdrs = ["diagnostic_loc_converter.h"],
  271. deps = [
  272. ":absolute_node_ref",
  273. ":file",
  274. ":typed_insts",
  275. "//toolchain/diagnostics:emitter",
  276. "//toolchain/parse:tree",
  277. "@llvm-project//clang:frontend",
  278. "@llvm-project//llvm:Support",
  279. ],
  280. )
  281. cc_library(
  282. name = "dump",
  283. srcs = ["dump.cpp"],
  284. hdrs = ["dump.h"],
  285. deps = [
  286. ":file",
  287. ":stringify",
  288. ":typed_insts",
  289. "//common:ostream",
  290. "//common:raw_string_ostream",
  291. ],
  292. # Always link dump methods so they are callable from a debugger
  293. # even though they are never called.
  294. alwayslink = 1,
  295. )
  296. cc_test(
  297. name = "name_scope_test",
  298. size = "small",
  299. srcs = ["name_scope_test.cpp"],
  300. deps = [
  301. ":file",
  302. "//testing/base:gtest_main",
  303. "@googletest//:gtest",
  304. ],
  305. )
  306. cc_test(
  307. name = "typed_insts_test",
  308. size = "small",
  309. srcs = ["typed_insts_test.cpp"],
  310. deps = [
  311. ":file",
  312. ":typed_insts",
  313. "//testing/base:gtest_main",
  314. "@googletest//:gtest",
  315. ],
  316. )
  317. cc_test(
  318. name = "yaml_test",
  319. size = "small",
  320. srcs = ["yaml_test.cpp"],
  321. deps = [
  322. "//common:all_llvm_targets",
  323. "//common:ostream",
  324. "//common:raw_string_ostream",
  325. "//testing/base:global_exe_path",
  326. "//testing/base:gtest_main",
  327. "//toolchain/driver",
  328. "//toolchain/testing:yaml_test_helpers",
  329. "@googletest//:gtest",
  330. "@llvm-project//llvm:Support",
  331. ],
  332. )
  333. cc_library(
  334. name = "mangler",
  335. srcs = ["mangler.cpp"],
  336. hdrs = ["mangler.h"],
  337. deps = [
  338. ":entry_point",
  339. ":file",
  340. ":inst_namer",
  341. ":typed_insts",
  342. "//common:raw_string_ostream",
  343. "//toolchain/base:kind_switch",
  344. "@llvm-project//clang:ast",
  345. "@llvm-project//llvm:Support",
  346. ],
  347. )