BUILD 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. "clang_global_decl.cpp",
  37. "clang_global_decl.h",
  38. "constant.cpp",
  39. "constant.h",
  40. "context.cpp",
  41. "file_context.cpp",
  42. "function_context.cpp",
  43. "mangler.cpp",
  44. "mangler.h",
  45. "specific_coalescer.cpp",
  46. ] +
  47. # Glob handler files to avoid missing any.
  48. glob([
  49. "handle*.cpp",
  50. ]),
  51. hdrs = [
  52. "context.h",
  53. "file_context.h",
  54. "function_context.h",
  55. "specific_coalescer.h",
  56. ],
  57. deps = [
  58. ":options",
  59. "//common:check",
  60. "//common:growing_range",
  61. "//common:map",
  62. "//common:pretty_stack_trace_function",
  63. "//common:raw_string_ostream",
  64. "//common:vlog",
  65. "//toolchain/base:fixed_size_value_store",
  66. "//toolchain/base:kind_switch",
  67. "//toolchain/parse:tree",
  68. "//toolchain/sem_ir:absolute_node_id",
  69. "//toolchain/sem_ir:clang_decl",
  70. "//toolchain/sem_ir:diagnostic_loc_converter",
  71. "//toolchain/sem_ir:entry_point",
  72. "//toolchain/sem_ir:expr_info",
  73. "//toolchain/sem_ir:file",
  74. "//toolchain/sem_ir:inst_namer",
  75. "//toolchain/sem_ir:stringify",
  76. "//toolchain/sem_ir:typed_insts",
  77. "@llvm-project//clang:ast",
  78. "@llvm-project//clang:basic",
  79. "@llvm-project//clang:codegen",
  80. "@llvm-project//clang:lex",
  81. "@llvm-project//llvm:Core",
  82. "@llvm-project//llvm:Linker",
  83. "@llvm-project//llvm:Passes",
  84. "@llvm-project//llvm:Support",
  85. "@llvm-project//llvm:TransformUtils",
  86. ],
  87. )