BUILD 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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. srcs = ["fn_inserter_test.cpp"],
  56. deps = [
  57. ":fn_inserter",
  58. ":matcher_test_base",
  59. "//testing/base:gtest_main",
  60. "@com_google_googletest//:gtest",
  61. "@llvm-project//clang:tooling",
  62. ],
  63. )
  64. cc_library(
  65. name = "for_range",
  66. srcs = ["for_range.cpp"],
  67. hdrs = ["for_range.h"],
  68. deps = [
  69. ":matcher",
  70. "@llvm-project//clang:ast_matchers",
  71. ],
  72. )
  73. cc_test(
  74. name = "for_range_test",
  75. srcs = ["for_range_test.cpp"],
  76. deps = [
  77. ":for_range",
  78. ":matcher_test_base",
  79. "//testing/base:gtest_main",
  80. "@com_google_googletest//:gtest",
  81. "@llvm-project//clang:tooling",
  82. ],
  83. )
  84. cc_library(
  85. name = "var_decl",
  86. srcs = ["var_decl.cpp"],
  87. hdrs = ["var_decl.h"],
  88. deps = [
  89. ":matcher",
  90. "@llvm-project//clang:ast_matchers",
  91. "@llvm-project//clang:type_nodes_gen",
  92. "@llvm-project//llvm:Support",
  93. ],
  94. )
  95. cc_test(
  96. name = "var_decl_test",
  97. srcs = ["var_decl_test.cpp"],
  98. deps = [
  99. ":matcher_test_base",
  100. ":var_decl",
  101. "//testing/base:gtest_main",
  102. "@com_google_googletest//:gtest",
  103. "@llvm-project//clang:tooling",
  104. ],
  105. )