fwd/vendor/cxx/tools/buck/rust_cxx_bridge.bzl
John Doty 9c435dc440 Vendor dependencies
Let's see how I like this workflow.
2022-12-19 08:38:22 -08:00

32 lines
886 B
Python

def rust_cxx_bridge(name, src, deps = []):
native.genrule(
name = "%s/header" % name,
out = src + ".h",
cmd = "cp $(location :%s/generated)/generated.h ${OUT}" % name,
)
native.genrule(
name = "%s/source" % name,
out = src + ".cc",
cmd = "cp $(location :%s/generated)/generated.cc ${OUT}" % name,
)
native.genrule(
name = "%s/generated" % name,
srcs = [src],
out = ".",
cmd = "$(exe //:codegen) ${SRCS} -o ${OUT}/generated.h -o ${OUT}/generated.cc",
type = "cxxbridge",
)
native.cxx_library(
name = name,
srcs = [":%s/source" % name],
preferred_linkage = "static",
exported_deps = deps + [":%s/include" % name],
)
native.cxx_library(
name = "%s/include" % name,
exported_headers = [":%s/header" % name],
)