48 lines
986 B
Python
48 lines
986 B
Python
load("@rules_cc//cc:defs.bzl", "cc_library")
|
|
load("@rules_rust//rust:defs.bzl", "rust_static_library")
|
|
|
|
genrule(
|
|
name = "cpp_bindings",
|
|
srcs = [
|
|
"src/color.rs",
|
|
],
|
|
outs = [
|
|
"cpp/include/rustutils/color.hpp",
|
|
"cpp/src/color.rs.cpp",
|
|
],
|
|
cmd = "CXXBRIDGE_CMD=$(location @cxx.rs//:codegen) ./$(location :generate.sh) $(@D) $(SRCS)",
|
|
# Using the cxxbridge binary built by Bazel
|
|
tools = [
|
|
":generate.sh",
|
|
"@cxx.rs//:codegen",
|
|
],
|
|
)
|
|
|
|
rust_static_library(
|
|
name = "rustutils",
|
|
srcs = [
|
|
"src/color.rs",
|
|
"src/lib.rs",
|
|
],
|
|
crate_name = "rustutils",
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
"@crates//:csscolorparser",
|
|
"@crates//:cxx",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "rustutilslib",
|
|
srcs = [
|
|
":cpp_bindings",
|
|
],
|
|
includes = [
|
|
"cpp/include",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":rustutils",
|
|
],
|
|
)
|