BUILD 2.5 KB

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