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_toolchains:defs.bzl", "cc_env")
  5. load("//testing/file_test:rules.bzl", "file_test")
  6. load("//testing/fuzzing:rules.bzl", "cc_fuzz_test")
  7. package(default_visibility = ["//visibility:public"])
  8. cc_library(
  9. name = "driver",
  10. srcs = ["driver.cpp"],
  11. hdrs = ["driver.h"],
  12. textual_hdrs = ["flags.def"],
  13. deps = [
  14. "//common:command_line",
  15. "//common:vlog",
  16. "//toolchain/codegen",
  17. "//toolchain/diagnostics:diagnostic_emitter",
  18. "//toolchain/diagnostics:sorting_diagnostic_consumer",
  19. "//toolchain/lexer:tokenized_buffer",
  20. "//toolchain/lowering:lower_to_llvm",
  21. "//toolchain/parser:parse_tree",
  22. "//toolchain/semantics:semantics_ir",
  23. "//toolchain/semantics:semantics_ir_formatter",
  24. "//toolchain/source:source_buffer",
  25. "@llvm-project//llvm:Core",
  26. "@llvm-project//llvm:Support",
  27. "@llvm-project//llvm:TargetParser",
  28. ],
  29. )
  30. file_test(
  31. name = "driver_file_test",
  32. srcs = ["driver_file_test.cpp"],
  33. tests = glob(["testdata/**/*.carbon"]),
  34. deps = [
  35. ":driver_file_test_base",
  36. "@llvm-project//llvm:Support",
  37. ],
  38. )
  39. cc_test(
  40. name = "driver_test",
  41. size = "small",
  42. srcs = ["driver_test.cpp"],
  43. deps = [
  44. ":driver",
  45. "//testing/base:gtest_main",
  46. "//testing/base:test_raw_ostream",
  47. "//toolchain/base:yaml_test_helpers",
  48. "//toolchain/diagnostics:diagnostic_emitter",
  49. "//toolchain/lexer:tokenized_buffer_test_helpers",
  50. "@com_google_googletest//:gtest",
  51. "@llvm-project//llvm:Object",
  52. "@llvm-project//llvm:Support",
  53. ],
  54. )
  55. cc_fuzz_test(
  56. name = "driver_fuzzer",
  57. size = "small",
  58. srcs = ["driver_fuzzer.cpp"],
  59. corpus = glob(["fuzzer_corpus/*"]),
  60. deps = [
  61. ":driver",
  62. "//testing/base:test_raw_ostream",
  63. "@llvm-project//llvm:Support",
  64. ],
  65. )
  66. cc_library(
  67. name = "driver_file_test_base",
  68. testonly = 1,
  69. hdrs = ["driver_file_test_base.h"],
  70. deps = [
  71. ":driver",
  72. "//testing/file_test:file_test_base",
  73. "@llvm-project//llvm:Support",
  74. ],
  75. )
  76. cc_binary(
  77. name = "carbon",
  78. srcs = ["driver_main.cpp"],
  79. env = cc_env(),
  80. deps = [
  81. ":driver",
  82. "//common:bazel_working_dir",
  83. "@llvm-project//llvm:Support",
  84. ],
  85. )