load("@rules_rust//rust:defs.bzl", "rust_doc", "rust_library", "rust_test") package(default_visibility = ["//ffi/rust_calling_c:__subpackages__"]) rust_library( name = "matrix", srcs = [ "src/ffi.rs", "src/matrix.rs", ], deps = [ "//ffi/rust_calling_c/c:native_matrix", "@libc", ], ) rust_test( name = "matrix_test", crate = ":matrix", ) rust_doc( name = "matrix_doc", crate = ":matrix", ) ## Do the same as above, but with a dynamic c library. rust_library( name = "matrix_dynamically_linked", srcs = [ "src/ffi.rs", "src/matrix.rs", ], crate_root = "src/matrix.rs", target_compatible_with = select({ # TODO: Make this work on windows "@platforms//os:windows": ["@platforms//:incompatible"], "//conditions:default": [], }), deps = [ "//ffi/rust_calling_c/c:native_matrix_so", "@libc", ], ) rust_test( name = "matrix_dylib_test", crate = ":matrix_dynamically_linked", target_compatible_with = select({ # TODO: This test requires --incompatible_macos_set_install_name and Bazel 4.2.0+ "@platforms//os:macos": ["@platforms//:incompatible"], # TODO: Make this work on windows "@platforms//os:windows": ["@platforms//:incompatible"], "//conditions:default": [], }), ) rust_doc( name = "matrix_dylib_doc", crate = ":matrix_dynamically_linked", )