blob: 834ae105787e9ea0b8ac331f4df8704b3625091c [file] [log] [blame]
"""Generates equivalent Rust code from C++ code."""
licenses(["notice"])
cc_binary(
name = "rs_from_cc",
srcs = ["rs_from_cc.cc"],
visibility = ["//visibility:public"],
deps = [
":rs_from_cc_lib",
"@absl//flags:flag",
"@absl//flags:parse",
"@absl//status",
"@absl//status:statusor",
"@absl//strings",
"//common:check",
"//common:file_io",
"@llvm///llvm:Support",
"@rust//support:rust_okay_here",
],
)
cc_library(
name = "frontend_action",
srcs = ["frontend_action.cc"],
hdrs = ["frontend_action.h"],
deps = [
":ast_consumer",
":converter",
"//lifetime_annotations",
"@llvm///clang:ast",
"@llvm///clang:frontend",
],
)
cc_library(
name = "ast_consumer",
srcs = ["ast_consumer.cc"],
hdrs = ["ast_consumer.h"],
deps = [
":converter",
"//common:check",
"@llvm///clang:ast",
"@llvm///clang:frontend",
],
)
cc_library(
name = "converter",
srcs = ["converter.cc"],
hdrs = ["converter.h"],
deps = [
"@absl//container:flat_hash_map",
"@absl//container:flat_hash_set",
"@absl//status:statusor",
"@absl//strings",
"@absl//types:span",
"//lifetime_annotations",
"@llvm///clang:ast",
"@llvm///clang:basic",
"@llvm///clang:sema",
"//third_party/re2",
],
)
cc_test(
name = "rs_from_cc_test",
srcs = ["rs_from_cc_lib_test.cc"],
deps = [
":rs_from_cc_lib",
"//testing/base/public:gunit_main",
"@absl//status",
"@absl//strings",
"@llvm///clang:ast",
],
)
cc_library(
name = "rs_from_cc_lib",
srcs = ["rs_from_cc_lib.cc"],
hdrs = ["rs_from_cc_lib.h"],
deps = [
":converter",
":frontend_action",
"@absl//container:flat_hash_map",
"@absl//status",
"@absl//status:statusor",
"@absl//strings",
"@absl//types:span",
"@llvm///clang:basic",
"@llvm///clang:frontend",
"@llvm///clang:tooling",
],
)