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  )