BUILD 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. package(default_visibility = ["//visibility:public"])
  6. cc_binary(
  7. name = "cpp_refactoring",
  8. srcs = ["main.cpp"],
  9. deps = [
  10. ":fn_inserter",
  11. ":for_range",
  12. ":var_decl",
  13. "@llvm-project//clang:tooling",
  14. ],
  15. )
  16. cc_library(
  17. name = "matcher",
  18. srcs = ["matcher.cpp"],
  19. hdrs = [
  20. "matcher.h",
  21. "matcher_manager.h",
  22. ],
  23. deps = [
  24. "@llvm-project//clang:ast_matchers",
  25. "@llvm-project//clang:tooling_core",
  26. ],
  27. )
  28. cc_library(
  29. name = "matcher_test_base",
  30. testonly = 1,
  31. hdrs = ["matcher_test_base.h"],
  32. deps = [
  33. ":matcher",
  34. "@llvm-project//clang:ast_matchers",
  35. "@llvm-project//clang:tooling",
  36. "@llvm-project//llvm:gmock",
  37. "@llvm-project//llvm:gtest",
  38. ],
  39. )
  40. # Individual matchers
  41. cc_library(
  42. name = "fn_inserter",
  43. srcs = ["fn_inserter.cpp"],
  44. hdrs = ["fn_inserter.h"],
  45. deps = [":matcher"],
  46. )
  47. cc_test(
  48. name = "fn_inserter_test",
  49. srcs = ["fn_inserter_test.cpp"],
  50. deps = [
  51. ":fn_inserter",
  52. ":matcher_test_base",
  53. "@llvm-project//clang:tooling",
  54. "@llvm-project//llvm:gtest_main",
  55. ],
  56. )
  57. cc_library(
  58. name = "for_range",
  59. srcs = ["for_range.cpp"],
  60. hdrs = ["for_range.h"],
  61. deps = [":matcher"],
  62. )
  63. cc_test(
  64. name = "for_range_test",
  65. srcs = ["for_range_test.cpp"],
  66. deps = [
  67. ":for_range",
  68. ":matcher_test_base",
  69. "@llvm-project//clang:tooling",
  70. "@llvm-project//llvm:gtest_main",
  71. ],
  72. )
  73. cc_library(
  74. name = "var_decl",
  75. srcs = ["var_decl.cpp"],
  76. hdrs = ["var_decl.h"],
  77. deps = [":matcher"],
  78. )
  79. cc_test(
  80. name = "var_decl_test",
  81. srcs = ["var_decl_test.cpp"],
  82. deps = [
  83. ":matcher_test_base",
  84. ":var_decl",
  85. "@llvm-project//clang:tooling",
  86. "@llvm-project//llvm:gtest_main",
  87. ],
  88. )