| load("//tools/buck:genrule.bzl", "genrule") |
| |
| def rust_library( |
| name, |
| srcs, |
| features = [], |
| rustc_flags = [], |
| build_script = None, |
| **kwargs): |
| if build_script: |
| rust_binary( |
| name = "%s@build" % name, |
| srcs = srcs + [build_script], |
| crate = "build", |
| crate_root = build_script, |
| features = features, |
| rustc_flags = rustc_flags, |
| ) |
| |
| genrule( |
| name = "%s@cfg" % name, |
| out = "output", |
| cmd = "env RUSTC=rustc TARGET= $(exe :%s@build) | sed -n s/^cargo:rustc-cfg=/--cfg=/p > ${OUT}" % name, |
| ) |
| |
| rustc_flags = rustc_flags + ["@$(location :%s@cfg)" % name] |
| |
| native.rust_library( |
| name = name, |
| srcs = srcs, |
| features = features, |
| rustc_flags = rustc_flags, |
| **kwargs |
| ) |