1load("//tools/buck:build_mode.bzl", "build_mode") 2load("//tools/buck:rust_cxx_bridge.bzl", "rust_cxx_bridge") 3 4build_mode( 5 name = "build_mode", 6 cell = native.get_cell_name(), 7) 8 9rust_test( 10 name = "test", 11 srcs = ["test.rs"], 12 edition = "2021", 13 remote_execution_action_key_providers = ":build_mode", 14 deps = [ 15 ":ffi", 16 "//:cxx", 17 ], 18) 19 20rust_library( 21 name = "ffi", 22 srcs = [ 23 "ffi/cast.rs", 24 "ffi/lib.rs", 25 "ffi/module.rs", 26 ], 27 crate = "cxx_test_suite", 28 edition = "2021", 29 deps = [ 30 ":impl", 31 "//:cxx", 32 ], 33) 34 35cxx_library( 36 name = "impl", 37 srcs = [ 38 "ffi/tests.cc", 39 ":bridge/source", 40 ":module/source", 41 ], 42 exported_deps = ["//:core"], 43 exported_headers = [ 44 ":bridge/header", 45 ":module/header", 46 "ffi/tests.h", 47 ], 48 preferred_linkage = "static", 49) 50 51rust_cxx_bridge( 52 name = "bridge", 53 src = "ffi/lib.rs", 54 deps = [ 55 ":impl", 56 ], 57) 58 59rust_cxx_bridge( 60 name = "module", 61 src = "ffi/module.rs", 62 deps = [ 63 ":impl", 64 ], 65) 66