BUILD 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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")
  5. package(default_visibility = ["//visibility:public"])
  6. filegroup(
  7. name = "testdata",
  8. srcs = glob(["testdata/**/*.carbon"]),
  9. )
  10. cc_library(
  11. name = "options",
  12. hdrs = ["options.h"],
  13. deps = [
  14. "@llvm-project//llvm:Support",
  15. ],
  16. )
  17. cc_library(
  18. name = "lower",
  19. srcs = ["lower.cpp"],
  20. hdrs = ["lower.h"],
  21. deps = [
  22. ":context",
  23. ":options",
  24. "//common:vlog",
  25. "//toolchain/parse:tree",
  26. "//toolchain/sem_ir:file",
  27. "//toolchain/sem_ir:inst_namer",
  28. "@llvm-project//llvm:Core",
  29. "@llvm-project//llvm:Passes",
  30. "@llvm-project//llvm:Support",
  31. ],
  32. )
  33. cc_library(
  34. name = "context",
  35. srcs = [
  36. "aggregate.cpp",
  37. "clang_global_decl.cpp",
  38. "clang_global_decl.h",
  39. "constant.cpp",
  40. "constant.h",
  41. "context.cpp",
  42. "file_context.cpp",
  43. "function_context.cpp",
  44. "specific_coalescer.cpp",
  45. "type.cpp",
  46. ] +
  47. # Glob handler files to avoid missing any.
  48. glob([
  49. "handle*.cpp",
  50. ]),
  51. hdrs = [
  52. "aggregate.h",
  53. "context.h",
  54. "file_context.h",
  55. "function_context.h",
  56. "specific_coalescer.h",
  57. "type.h",
  58. ],
  59. deps = [
  60. ":options",
  61. "//common:check",
  62. "//common:growing_range",
  63. "//common:map",
  64. "//common:pretty_stack_trace_function",
  65. "//common:raw_string_ostream",
  66. "//common:vlog",
  67. "//toolchain/base:fixed_size_value_store",
  68. "//toolchain/base:kind_switch",
  69. "//toolchain/parse:tree",
  70. "//toolchain/sem_ir:absolute_node_ref",
  71. "//toolchain/sem_ir:clang_decl",
  72. "//toolchain/sem_ir:diagnostic_loc_converter",
  73. "//toolchain/sem_ir:entry_point",
  74. "//toolchain/sem_ir:expr_info",
  75. "//toolchain/sem_ir:file",
  76. "//toolchain/sem_ir:inst_namer",
  77. "//toolchain/sem_ir:mangler",
  78. "//toolchain/sem_ir:stringify",
  79. "//toolchain/sem_ir:typed_insts",
  80. "@llvm-project//clang:ast",
  81. "@llvm-project//clang:basic",
  82. "@llvm-project//clang:codegen",
  83. "@llvm-project//clang:lex",
  84. "@llvm-project//llvm:Core",
  85. "@llvm-project//llvm:Linker",
  86. "@llvm-project//llvm:Passes",
  87. "@llvm-project//llvm:Support",
  88. "@llvm-project//llvm:TransformUtils",
  89. ],
  90. )