cxx 1.0.61

Safe interop between Rust and C++
Documentation
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
    )