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