BUILD 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
  5. load("//bazel/manifest:defs.bzl", "manifest")
  6. package(default_visibility = ["//visibility:public"])
  7. filegroup(
  8. name = "testdata",
  9. data = glob(["testdata/**/*.carbon"]),
  10. )
  11. cc_library(
  12. name = "diagnostic_emitter",
  13. srcs = [
  14. "diagnostic.cpp",
  15. "diagnostic_consumer.cpp",
  16. ],
  17. hdrs = [
  18. "diagnostic.h",
  19. "diagnostic_consumer.h",
  20. "diagnostic_converter.h",
  21. "diagnostic_emitter.h",
  22. ],
  23. deps = [
  24. ":diagnostic_kind",
  25. ":format_providers",
  26. "//common:check",
  27. "//common:ostream",
  28. "@llvm-project//llvm:Support",
  29. ],
  30. )
  31. cc_test(
  32. name = "diagnostic_emitter_test",
  33. size = "small",
  34. srcs = ["diagnostic_emitter_test.cpp"],
  35. deps = [
  36. ":diagnostic_emitter",
  37. ":mocks",
  38. "//testing/base:gtest_main",
  39. "@googletest//:gtest",
  40. "@llvm-project//llvm:Support",
  41. ],
  42. )
  43. cc_library(
  44. name = "diagnostic_kind",
  45. srcs = ["diagnostic_kind.cpp"],
  46. hdrs = ["diagnostic_kind.h"],
  47. textual_hdrs = [
  48. "diagnostic_kind.def",
  49. ],
  50. deps = [
  51. "//common:enum_base",
  52. ],
  53. )
  54. manifest(
  55. name = "all_testdata.txt",
  56. srcs = ["//toolchain/testing:all_testdata"],
  57. )
  58. cc_test(
  59. name = "coverage_test",
  60. size = "small",
  61. srcs = ["coverage_test.cpp"],
  62. args = ["--testdata_manifest=$(location :all_testdata.txt)"],
  63. data = [
  64. ":all_testdata.txt",
  65. "//toolchain/testing:all_testdata",
  66. ],
  67. deps = [
  68. ":diagnostic_kind",
  69. "//testing/base:gtest_main",
  70. "//toolchain/testing:coverage_helper",
  71. "@abseil-cpp//absl/flags:flag",
  72. "@googletest//:gtest",
  73. ],
  74. )
  75. cc_library(
  76. name = "file_diagnostics",
  77. hdrs = ["file_diagnostics.h"],
  78. deps = [
  79. ":diagnostic_emitter",
  80. "@llvm-project//llvm:Support",
  81. ],
  82. )
  83. cc_library(
  84. name = "format_providers",
  85. srcs = ["format_providers.cpp"],
  86. hdrs = ["format_providers.h"],
  87. deps = [
  88. "//common:check",
  89. "//common:ostream",
  90. "@llvm-project//llvm:Support",
  91. ],
  92. )
  93. cc_test(
  94. name = "format_providers_test",
  95. size = "small",
  96. srcs = ["format_providers_test.cpp"],
  97. deps = [
  98. ":diagnostic_emitter",
  99. ":format_providers",
  100. ":mocks",
  101. "//testing/base:gtest_main",
  102. "@googletest//:gtest",
  103. "@llvm-project//llvm:Support",
  104. ],
  105. )
  106. cc_library(
  107. name = "null_diagnostics",
  108. hdrs = ["null_diagnostics.h"],
  109. deps = [
  110. ":diagnostic_emitter",
  111. "@llvm-project//llvm:Support",
  112. ],
  113. )
  114. cc_library(
  115. name = "sorting_diagnostic_consumer",
  116. hdrs = ["sorting_diagnostic_consumer.h"],
  117. deps = [
  118. ":diagnostic_emitter",
  119. "//common:check",
  120. "@llvm-project//llvm:Support",
  121. ],
  122. )
  123. cc_test(
  124. name = "sorting_diagnostic_consumer_test",
  125. size = "small",
  126. srcs = ["sorting_diagnostic_consumer_test.cpp"],
  127. deps = [
  128. ":diagnostic_emitter",
  129. ":mocks",
  130. ":sorting_diagnostic_consumer",
  131. "//testing/base:gtest_main",
  132. "@googletest//:gtest",
  133. "@llvm-project//llvm:Support",
  134. ],
  135. )
  136. cc_library(
  137. name = "mocks",
  138. testonly = 1,
  139. srcs = ["mocks.cpp"],
  140. hdrs = ["mocks.h"],
  141. deps = [
  142. ":diagnostic_emitter",
  143. "@googletest//:gtest",
  144. "@llvm-project//llvm:Support",
  145. ],
  146. )