| load("//tools/buck:build_mode.bzl", "build_mode") |
| load("//tools/buck:rust_cxx_bridge.bzl", "rust_cxx_bridge") |
| |
| build_mode( |
| name = "build_mode", |
| cell = native.get_cell_name(), |
| ) |
| |
| rust_test( |
| name = "test", |
| srcs = ["test.rs"], |
| edition = "2021", |
| remote_execution_action_key_providers = ":build_mode", |
| deps = [ |
| ":ffi", |
| "//:cxx", |
| ], |
| ) |
| |
| rust_library( |
| name = "ffi", |
| srcs = [ |
| "ffi/cast.rs", |
| "ffi/lib.rs", |
| "ffi/module.rs", |
| ], |
| crate = "cxx_test_suite", |
| edition = "2021", |
| deps = [ |
| ":impl", |
| "//:cxx", |
| ], |
| ) |
| |
| cxx_library( |
| name = "impl", |
| srcs = [ |
| "ffi/tests.cc", |
| ":bridge/source", |
| ":module/source", |
| ], |
| exported_deps = ["//:core"], |
| exported_headers = [ |
| ":bridge/header", |
| ":module/header", |
| "ffi/tests.h", |
| ], |
| preferred_linkage = "static", |
| ) |
| |
| rust_cxx_bridge( |
| name = "bridge", |
| src = "ffi/lib.rs", |
| deps = [ |
| ":impl", |
| ], |
| ) |
| |
| rust_cxx_bridge( |
| name = "module", |
| src = "ffi/module.rs", |
| deps = [ |
| ":impl", |
| ], |
| ) |