1*c8dee2aaSAndroid Build Coastguard Workerload("@rules_rust//rust:defs.bzl", "rust_static_library") 2*c8dee2aaSAndroid Build Coastguard Workerload("//bazel:rust_cxx_bridge.bzl", "rust_cxx_bridge") 3*c8dee2aaSAndroid Build Coastguard Workerload( 4*c8dee2aaSAndroid Build Coastguard Worker "//bazel:skia_rules.bzl", 5*c8dee2aaSAndroid Build Coastguard Worker "skia_cc_library", 6*c8dee2aaSAndroid Build Coastguard Worker "skia_filegroup", 7*c8dee2aaSAndroid Build Coastguard Worker) 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Workerskia_filegroup( 10*c8dee2aaSAndroid Build Coastguard Worker name = "rs_srcs", 11*c8dee2aaSAndroid Build Coastguard Worker srcs = ["FFI.rs"], 12*c8dee2aaSAndroid Build Coastguard Worker) 13*c8dee2aaSAndroid Build Coastguard Worker 14*c8dee2aaSAndroid Build Coastguard Workerskia_filegroup( 15*c8dee2aaSAndroid Build Coastguard Worker name = "cxx_bridge_srcs", 16*c8dee2aaSAndroid Build Coastguard Worker srcs = ["FFI.rs"], 17*c8dee2aaSAndroid Build Coastguard Worker) 18*c8dee2aaSAndroid Build Coastguard Worker 19*c8dee2aaSAndroid Build Coastguard Worker# Note: the `hdrs` of the `utils` target are included in *two* `.gni` lists 20*c8dee2aaSAndroid Build Coastguard Worker# (`skia_codec_rust_png` and `skia_encode_rust_png_srcs`) - this works only 21*c8dee2aaSAndroid Build Coastguard Worker# because this is a header-only library. If `utils` needs `srcs` in the 22*c8dee2aaSAndroid Build Coastguard Worker# future, then a separate `.gni` list may be required. 23*c8dee2aaSAndroid Build Coastguard Workerskia_cc_library( 24*c8dee2aaSAndroid Build Coastguard Worker name = "utils", 25*c8dee2aaSAndroid Build Coastguard Worker hdrs = ["UtilsForFFI.h"], 26*c8dee2aaSAndroid Build Coastguard Worker features = ["layering_check"], 27*c8dee2aaSAndroid Build Coastguard Worker visibility = ["//experimental/rust_png:__subpackages__"], 28*c8dee2aaSAndroid Build Coastguard Worker deps = ["//:core"], 29*c8dee2aaSAndroid Build Coastguard Worker) 30*c8dee2aaSAndroid Build Coastguard Worker 31*c8dee2aaSAndroid Build Coastguard Workerskia_cc_library( 32*c8dee2aaSAndroid Build Coastguard Worker name = "ffi_cpp", 33*c8dee2aaSAndroid Build Coastguard Worker hdrs = ["FFI.h"], 34*c8dee2aaSAndroid Build Coastguard Worker features = ["layering_check"], 35*c8dee2aaSAndroid Build Coastguard Worker visibility = [ 36*c8dee2aaSAndroid Build Coastguard Worker "//experimental/rust_png:__subpackages__", 37*c8dee2aaSAndroid Build Coastguard Worker ], 38*c8dee2aaSAndroid Build Coastguard Worker) 39*c8dee2aaSAndroid Build Coastguard Worker 40*c8dee2aaSAndroid Build Coastguard Workerrust_cxx_bridge( 41*c8dee2aaSAndroid Build Coastguard Worker name = "cxx_bridge", 42*c8dee2aaSAndroid Build Coastguard Worker src = "FFI.rs", 43*c8dee2aaSAndroid Build Coastguard Worker visibility = [ 44*c8dee2aaSAndroid Build Coastguard Worker "//experimental/rust_png:__subpackages__", 45*c8dee2aaSAndroid Build Coastguard Worker ], 46*c8dee2aaSAndroid Build Coastguard Worker deps = [":ffi_cpp"], 47*c8dee2aaSAndroid Build Coastguard Worker) 48*c8dee2aaSAndroid Build Coastguard Worker 49*c8dee2aaSAndroid Build Coastguard Workerrust_static_library( 50*c8dee2aaSAndroid Build Coastguard Worker name = "ffi_rs", 51*c8dee2aaSAndroid Build Coastguard Worker srcs = [":rs_srcs"], 52*c8dee2aaSAndroid Build Coastguard Worker visibility = [ 53*c8dee2aaSAndroid Build Coastguard Worker "//experimental/rust_png:__subpackages__", 54*c8dee2aaSAndroid Build Coastguard Worker ], 55*c8dee2aaSAndroid Build Coastguard Worker deps = [ 56*c8dee2aaSAndroid Build Coastguard Worker ":ffi_cpp", 57*c8dee2aaSAndroid Build Coastguard Worker "@cxx", 58*c8dee2aaSAndroid Build Coastguard Worker "@rust_png//:png", 59*c8dee2aaSAndroid Build Coastguard Worker ], 60*c8dee2aaSAndroid Build Coastguard Worker) 61