load("@rules_rust//rust:defs.bzl", "rust_library") load("//bazel:rust_cxx_bridge.bzl", "rust_cxx_bridge") load( "//bazel:skia_rules.bzl", "skia_cc_library", "skia_filegroup", ) package( default_applicable_licenses = ["//:license"], ) licenses(["notice"]) skia_filegroup( name = "rs_srcs", srcs = ["io_traits_ffi.rs"], visibility = ["//:__subpackages__"], ) skia_filegroup( name = "cxx_bridge_srcs", srcs = ["io_traits_ffi.rs"], visibility = ["//:__subpackages__"], ) skia_filegroup( name = "ffi_hdrs", srcs = [ "SkStreamAdapter.h", "SpanUtils.h", ], visibility = ["//:__subpackages__"], ) # C++ implementation files for FFI utilities skia_filegroup( name = "ffi_cpp", srcs = ["SkStreamAdapter.cpp"], visibility = ["//:__subpackages__"], ) # Shared FFI utilities for Rust codec integrations. skia_cc_library( name = "ffi_utils", srcs = [":ffi_cpp"], hdrs = [":ffi_hdrs"], features = ["layering_check"], visibility = [ "//rust/png:__pkg__", "//src/codec:__pkg__", "//src/encode:__pkg__", ], deps = [ "//:core", "//src/base", "@crates//:cxx_cc", ], ) rust_cxx_bridge( name = "cxx_bridge", src = ":rs_srcs", visibility = ["//rust/png:__pkg__"], deps = [":ffi_utils"], ) rust_library( name = "skia_rust_common", srcs = ["io_traits_ffi.rs"], crate_name = "skia_rust_common", crate_root = "io_traits_ffi.rs", rustc_flags = [ "-Dwarnings", "--cfg=cxxbridge1", ], visibility = ["//rust/png:__pkg__"], deps = [ ":cxx_bridge", ":ffi_utils", "@crates//:cxx", ], )