BUILD 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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. package(default_visibility = ["//visibility:public"])
  5. cc_binary(
  6. name = "cpp_refactoring",
  7. srcs = ["main.cpp"],
  8. deps = [
  9. ":fn_inserter",
  10. ":for_range",
  11. ":matcher",
  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:basic",
  26. "@llvm-project//clang:lex",
  27. "@llvm-project//clang:tooling_core",
  28. ],
  29. )
  30. cc_library(
  31. name = "matcher_test_base",
  32. testonly = 1,
  33. hdrs = ["matcher_test_base.h"],
  34. deps = [
  35. ":matcher",
  36. "@com_google_googletest//:gtest",
  37. "@llvm-project//clang:ast_matchers",
  38. "@llvm-project//clang:tooling",
  39. "@llvm-project//clang:tooling_core",
  40. ],
  41. )
  42. # Individual matchers
  43. cc_library(
  44. name = "fn_inserter",
  45. srcs = ["fn_inserter.cpp"],
  46. hdrs = ["fn_inserter.h"],
  47. deps = [
  48. ":matcher",
  49. "@llvm-project//clang:ast_matchers",
  50. ],
  51. )
  52. cc_test(
  53. name = "fn_inserter_test",
  54. srcs = ["fn_inserter_test.cpp"],
  55. deps = [
  56. ":fn_inserter",
  57. ":matcher_test_base",
  58. "//common:gtest_main",
  59. "@com_google_googletest//:gtest",
  60. "@llvm-project//clang:tooling",
  61. ],
  62. )
  63. cc_library(
  64. name = "for_range",
  65. srcs = ["for_range.cpp"],
  66. hdrs = ["for_range.h"],
  67. deps = [
  68. ":matcher",
  69. "@llvm-project//clang:ast_matchers",
  70. ],
  71. )
  72. cc_test(
  73. name = "for_range_test",
  74. srcs = ["for_range_test.cpp"],
  75. deps = [
  76. ":for_range",
  77. ":matcher_test_base",
  78. "//common:gtest_main",
  79. "@com_google_googletest//:gtest",
  80. "@llvm-project//clang:tooling",
  81. ],
  82. )
  83. cc_library(
  84. name = "var_decl",
  85. srcs = ["var_decl.cpp"],
  86. hdrs = ["var_decl.h"],
  87. deps = [
  88. ":matcher",
  89. "@llvm-project//clang:ast_matchers",
  90. "@llvm-project//clang:type_nodes_gen",
  91. "@llvm-project//llvm:Support",
  92. ],
  93. )
  94. cc_test(
  95. name = "var_decl_test",
  96. srcs = ["var_decl_test.cpp"],
  97. deps = [
  98. ":matcher_test_base",
  99. ":var_decl",
  100. "//common:gtest_main",
  101. "@com_google_googletest//:gtest",
  102. "@llvm-project//clang:tooling",
  103. ],
  104. )