BUILD 2.2 KB

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