133d722a9Sopenharmony_ciload("@rules_cc//cc:defs.bzl", "cc_library")
233d722a9Sopenharmony_ciload("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
333d722a9Sopenharmony_ciload("//tools/bazel:rust_cxx_bridge.bzl", "rust_cxx_bridge")
433d722a9Sopenharmony_ci
533d722a9Sopenharmony_cirust_test(
633d722a9Sopenharmony_ci    name = "test",
733d722a9Sopenharmony_ci    size = "small",
833d722a9Sopenharmony_ci    srcs = ["test.rs"],
933d722a9Sopenharmony_ci    edition = "2018",
1033d722a9Sopenharmony_ci    deps = [
1133d722a9Sopenharmony_ci        ":cxx_test_suite",
1233d722a9Sopenharmony_ci        "//:cxx",
1333d722a9Sopenharmony_ci    ],
1433d722a9Sopenharmony_ci)
1533d722a9Sopenharmony_ci
1633d722a9Sopenharmony_cirust_library(
1733d722a9Sopenharmony_ci    name = "cxx_test_suite",
1833d722a9Sopenharmony_ci    srcs = [
1933d722a9Sopenharmony_ci        "ffi/cast.rs",
2033d722a9Sopenharmony_ci        "ffi/lib.rs",
2133d722a9Sopenharmony_ci        "ffi/module.rs",
2233d722a9Sopenharmony_ci    ],
2333d722a9Sopenharmony_ci    edition = "2018",
2433d722a9Sopenharmony_ci    deps = [
2533d722a9Sopenharmony_ci        ":impl",
2633d722a9Sopenharmony_ci        "//:cxx",
2733d722a9Sopenharmony_ci    ],
2833d722a9Sopenharmony_ci)
2933d722a9Sopenharmony_ci
3033d722a9Sopenharmony_cicc_library(
3133d722a9Sopenharmony_ci    name = "impl",
3233d722a9Sopenharmony_ci    srcs = [
3333d722a9Sopenharmony_ci        "ffi/tests.cc",
3433d722a9Sopenharmony_ci        ":bridge/source",
3533d722a9Sopenharmony_ci        ":module/source",
3633d722a9Sopenharmony_ci    ],
3733d722a9Sopenharmony_ci    hdrs = ["ffi/tests.h"],
3833d722a9Sopenharmony_ci    deps = [
3933d722a9Sopenharmony_ci        ":bridge/include",
4033d722a9Sopenharmony_ci        ":module/include",
4133d722a9Sopenharmony_ci        "//:core",
4233d722a9Sopenharmony_ci    ],
4333d722a9Sopenharmony_ci)
4433d722a9Sopenharmony_ci
4533d722a9Sopenharmony_cirust_cxx_bridge(
4633d722a9Sopenharmony_ci    name = "bridge",
4733d722a9Sopenharmony_ci    src = "ffi/lib.rs",
4833d722a9Sopenharmony_ci    deps = [":impl"],
4933d722a9Sopenharmony_ci)
5033d722a9Sopenharmony_ci
5133d722a9Sopenharmony_cirust_cxx_bridge(
5233d722a9Sopenharmony_ci    name = "module",
5333d722a9Sopenharmony_ci    src = "ffi/module.rs",
5433d722a9Sopenharmony_ci    deps = [":impl"],
5533d722a9Sopenharmony_ci)
56