kythe.io@v0.0.68-0.20240422202219-7225dbc01741/kythe/cxx/verifier/BUILD (about) 1 load("//:visibility.bzl", "PUBLIC_VISIBILITY") 2 load("//tools/build_rules/lexyacc:lexyacc.bzl", "genlex", "genyacc") 3 4 package( 5 default_visibility = ["//kythe:default_visibility"], 6 features = ["layering_check"], 7 ) 8 9 genyacc( 10 name = "parser", 11 src = "assertions.yy", 12 extra_outs = [ 13 "location.hh", 14 "stack.hh", 15 "position.hh", 16 ], 17 header_out = "parser.yy.hh", 18 source_out = "parser.yy.cc", 19 ) 20 21 genlex( 22 name = "lexer", 23 src = "assertions.lex", 24 out = "lexer.yy.cc", 25 includes = [":parser"], 26 ) 27 28 cc_library( 29 name = "lexparse", 30 srcs = [ 31 ":lexer", 32 ":parser", 33 ], 34 hdrs = [ 35 "assertion_ast.h", 36 "assertions.h", 37 ":parser", 38 ], 39 copts = [ 40 "-Wno-non-virtual-dtor", 41 "-Wno-deprecated-register", 42 "-Wno-implicit-fallthrough", 43 ], 44 deps = [ 45 ":pretty_printer", 46 "@com_google_absl//absl/log", 47 "@com_google_absl//absl/log:check", 48 "@com_google_absl//absl/memory", 49 "@com_google_absl//absl/strings", 50 "@com_googlesource_code_re2//:re2", 51 ], 52 ) 53 54 cc_library( 55 name = "souffle_interpreter", 56 srcs = [ 57 "souffle_interpreter.cc", 58 ], 59 hdrs = [ 60 "souffle_interpreter.h", 61 ], 62 deps = [ 63 ":assertions_to_souffle", 64 ":lexparse", 65 "//third_party/souffle:parse_transform", 66 "@com_google_absl//absl/base:no_destructor", 67 "@com_google_absl//absl/container:flat_hash_map", 68 "@com_google_absl//absl/container:flat_hash_set", 69 "@com_google_absl//absl/log", 70 "@com_google_absl//absl/log:check", 71 "@com_google_absl//absl/strings", 72 "@souffle", 73 ], 74 ) 75 76 cc_test( 77 name = "souffle_interpreter_test", 78 srcs = [ 79 "souffle_interpreter_test.cc", 80 ], 81 deps = [ 82 ":lib", 83 ":souffle_interpreter", 84 "//third_party:gtest", 85 "//third_party:gtest_main", 86 "@com_google_absl//absl/log", 87 ], 88 ) 89 90 cc_library( 91 name = "assertions_to_souffle", 92 srcs = [ 93 "assertions_to_souffle.cc", 94 ], 95 hdrs = [ 96 "assertions_to_souffle.h", 97 ], 98 deps = [ 99 ":lexparse", 100 ":pretty_printer", 101 "@com_google_absl//absl/base:core_headers", 102 "@com_google_absl//absl/container:flat_hash_map", 103 "@com_google_absl//absl/container:flat_hash_set", 104 "@com_google_absl//absl/strings", 105 ], 106 ) 107 108 cc_test( 109 name = "assertions_to_souffle_test", 110 srcs = [ 111 "assertions_to_souffle_test.cc", 112 ], 113 deps = [ 114 ":assertions_to_souffle", 115 ":lexparse", 116 ":lib", 117 ":pretty_printer", 118 "//third_party:gtest", 119 "//third_party:gtest_main", 120 "@com_google_absl//absl/log:check", 121 "@com_google_absl//absl/strings", 122 "@com_google_absl//absl/types:span", 123 ], 124 ) 125 126 cc_library( 127 name = "souffle_entrystream_support", 128 srcs = [ 129 "souffle_entrysteam_support.cc", 130 ], 131 features = [ 132 "-layering_check", # TODO: protocolbuffers/protobuf#10889 133 ], 134 deps = [ 135 "//kythe/proto:common_cc_proto", 136 "//kythe/proto:storage_cc_proto", 137 "@com_google_absl//absl/base:no_destructor", 138 "@com_google_protobuf//:protobuf", 139 "@com_google_protobuf//src/google/protobuf/io", 140 "@souffle", 141 ], 142 alwayslink = True, 143 ) 144 145 # TODO(zarko): Re-enable this target once we can build with c++17 on RBE 146 # (we're currently missing support for <filesystem>). 147 # cc_binary( 148 # name = "souffle_with_kythe", 149 # deps = [ 150 # ":souffle_entrystream_support", 151 # "@souffle//:main", 152 # ], 153 # ) 154 155 cc_library( 156 name = "lib", 157 srcs = [ 158 "assertions.cc", 159 "parser.yy.hh", 160 "verifier.cc", 161 ], 162 hdrs = [ 163 "assertions.h", 164 "verifier.h", 165 ], 166 copts = [ 167 "-Wno-non-virtual-dtor", 168 "-Wno-unused-variable", 169 "-Wno-implicit-fallthrough", 170 ], 171 features = [ 172 "-layering_check", # TODO: protocolbuffers/protobuf#10889 173 ], 174 deps = [ 175 ":lexparse", 176 ":pretty_printer", 177 ":souffle_interpreter", 178 "//kythe/cxx/common:file_utils", 179 "//kythe/cxx/common:kythe_uri", 180 "//kythe/cxx/common:scope_guard", 181 "//kythe/proto:common_cc_proto", 182 "//kythe/proto:storage_cc_proto", 183 "@com_google_absl//absl/container:flat_hash_map", 184 "@com_google_absl//absl/log", 185 "@com_google_absl//absl/log:check", 186 "@com_google_absl//absl/strings", 187 "@com_google_absl//absl/strings:str_format", 188 "@com_google_absl//absl/types:span", 189 "@com_google_protobuf//:protobuf", 190 "@com_googlesource_code_re2//:re2", 191 ], 192 ) 193 194 cc_binary( 195 name = "verifier", 196 srcs = [ 197 "verifier_main.cc", 198 ], 199 copts = [ 200 "-Wno-non-virtual-dtor", 201 "-Wno-unused-variable", 202 "-Wno-implicit-fallthrough", 203 ], 204 features = [ 205 "-layering_check", # TODO: protocolbuffers/protobuf#10889 206 ], 207 visibility = [PUBLIC_VISIBILITY], 208 deps = [ 209 ":lexparse", 210 ":lib", 211 "//kythe/cxx/common:init", 212 "//kythe/proto:storage_cc_proto", 213 "@com_google_absl//absl/flags:flag", 214 "@com_google_absl//absl/flags:parse", 215 "@com_google_absl//absl/flags:usage", 216 "@com_google_absl//absl/log", 217 "@com_google_absl//absl/strings:str_format", 218 "@com_google_absl//absl/time", 219 "@com_google_protobuf//:protobuf", 220 "@com_google_protobuf//src/google/protobuf/io", 221 ], 222 ) 223 224 cc_test( 225 name = "test", 226 size = "small", 227 srcs = [ 228 "verifier_unit_test.cc", 229 ], 230 copts = [ 231 "-Wno-non-virtual-dtor", 232 "-Wno-unused-variable", 233 "-Wno-implicit-fallthrough", 234 ], 235 features = [ 236 "-layering_check", # TODO: protocolbuffers/protobuf#10889 237 ], 238 deps = [ 239 ":lib", 240 "//kythe/proto:common_cc_proto", 241 "//kythe/proto:storage_cc_proto", 242 "//third_party:gtest", 243 "@com_google_absl//absl/log:initialize", 244 "@com_google_protobuf//:protobuf", 245 ], 246 ) 247 248 cc_library( 249 name = "pretty_printer", 250 srcs = ["pretty_printer.cc"], 251 hdrs = ["pretty_printer.h"], 252 deps = [ 253 "@com_google_absl//absl/strings", 254 "@com_google_absl//absl/strings:str_format", 255 ], 256 )