BUILD 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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("//bazel/fuzzing:rules.bzl", "cc_fuzz_test")
  6. package(default_visibility = ["//visibility:public"])
  7. cc_library(
  8. name = "driver",
  9. srcs = ["driver.cpp"],
  10. hdrs = ["driver.h"],
  11. textual_hdrs = ["flags.def"],
  12. deps = [
  13. "//common:vlog",
  14. "//toolchain/diagnostics:diagnostic_emitter",
  15. "//toolchain/diagnostics:sorting_diagnostic_consumer",
  16. "//toolchain/lexer:tokenized_buffer",
  17. "//toolchain/lowering:lower_to_llvm",
  18. "//toolchain/parser:parse_tree",
  19. "//toolchain/semantics:semantics_ir",
  20. "//toolchain/source:source_buffer",
  21. "@llvm-project//llvm:Core",
  22. "@llvm-project//llvm:Support",
  23. ],
  24. )
  25. cc_test(
  26. name = "driver_test",
  27. size = "small",
  28. srcs = ["driver_test.cpp"],
  29. deps = [
  30. ":driver",
  31. "//common:gtest_main",
  32. "//common:test_raw_ostream",
  33. "//toolchain/common:yaml_test_helpers",
  34. "//toolchain/diagnostics:diagnostic_emitter",
  35. "//toolchain/lexer:tokenized_buffer_test_helpers",
  36. "@com_google_googletest//:gtest",
  37. "@llvm-project//llvm:Support",
  38. ],
  39. )
  40. cc_fuzz_test(
  41. name = "driver_fuzzer",
  42. size = "small",
  43. srcs = ["driver_fuzzer.cpp"],
  44. corpus = glob(["fuzzer_corpus/*"]),
  45. deps = [
  46. ":driver",
  47. "@llvm-project//llvm:Support",
  48. ],
  49. )
  50. cc_binary(
  51. name = "carbon",
  52. srcs = ["driver_main.cpp"],
  53. env = cc_env(),
  54. deps = [
  55. ":driver",
  56. "//common:bazel_working_dir",
  57. "@llvm-project//llvm:Support",
  58. ],
  59. )