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