BUILD 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. ":matcher",
  13. ":var_decl",
  14. "@llvm-project//clang:tooling",
  15. ],
  16. )
  17. cc_library(
  18. name = "matcher",
  19. srcs = ["matcher.cpp"],
  20. hdrs = [
  21. "matcher.h",
  22. "matcher_manager.h",
  23. ],
  24. deps = [
  25. "@llvm-project//clang:ast_matchers",
  26. "@llvm-project//clang:basic",
  27. "@llvm-project//clang:lex",
  28. "@llvm-project//clang:tooling_core",
  29. ],
  30. )
  31. cc_library(
  32. name = "matcher_test_base",
  33. testonly = 1,
  34. hdrs = ["matcher_test_base.h"],
  35. deps = [
  36. ":matcher",
  37. "@com_google_googletest//:gtest",
  38. "@llvm-project//clang:ast_matchers",
  39. "@llvm-project//clang:tooling",
  40. "@llvm-project//clang:tooling_core",
  41. ],
  42. )
  43. # Individual matchers
  44. cc_library(
  45. name = "fn_inserter",
  46. srcs = ["fn_inserter.cpp"],
  47. hdrs = ["fn_inserter.h"],
  48. deps = [
  49. ":matcher",
  50. "@llvm-project//clang:ast_matchers",
  51. ],
  52. )
  53. cc_test(
  54. name = "fn_inserter_test",
  55. size = "small",
  56. srcs = ["fn_inserter_test.cpp"],
  57. deps = [
  58. ":fn_inserter",
  59. ":matcher_test_base",
  60. "//testing/base:gtest_main",
  61. "@com_google_googletest//:gtest",
  62. "@llvm-project//clang:tooling",
  63. ],
  64. )
  65. cc_library(
  66. name = "for_range",
  67. srcs = ["for_range.cpp"],
  68. hdrs = ["for_range.h"],
  69. deps = [
  70. ":matcher",
  71. "@llvm-project//clang:ast_matchers",
  72. ],
  73. )
  74. cc_test(
  75. name = "for_range_test",
  76. size = "small",
  77. srcs = ["for_range_test.cpp"],
  78. deps = [
  79. ":for_range",
  80. ":matcher_test_base",
  81. "//testing/base:gtest_main",
  82. "@com_google_googletest//:gtest",
  83. "@llvm-project//clang:tooling",
  84. ],
  85. )
  86. cc_library(
  87. name = "var_decl",
  88. srcs = ["var_decl.cpp"],
  89. hdrs = ["var_decl.h"],
  90. deps = [
  91. ":matcher",
  92. "@llvm-project//clang:ast_matchers",
  93. "@llvm-project//clang:type_nodes_gen",
  94. "@llvm-project//llvm:Support",
  95. ],
  96. )
  97. cc_test(
  98. name = "var_decl_test",
  99. size = "small",
  100. srcs = ["var_decl_test.cpp"],
  101. deps = [
  102. ":matcher_test_base",
  103. ":var_decl",
  104. "//testing/base:gtest_main",
  105. "@com_google_googletest//:gtest",
  106. "@llvm-project//clang:tooling",
  107. ],
  108. )