load("@pica_crates//:defs.bzl", "all_crate_deps") load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library") genrule( name = "libpica_uci_packets", srcs = ["src/uci_packets.pdl"], outs = ["uci_packets.rs"], cmd = "$(execpath @pica_crates//:pdl-compiler__pdlc) --output-format rust_legacy $< > $@", tools = ["@pica_crates//:pdl-compiler__pdlc"], ) rust_library( name = "libpica", srcs = glob(["src/*.rs"]) + [ ":libpica_uci_packets", ], crate_name = "pica", proc_macro_deps = all_crate_deps(proc_macro = True), rustc_env = { # HACK: If PWD were execroot, this would be roughly # $(dirname $(execpath :libpica_uci_packets)). # However, it is not, so use .. here (to counteract src/) "OUT_DIR": "..", }, visibility = ["//visibility:public"], deps = all_crate_deps(normal = True), ) rust_binary( name = "pica", srcs = ["src/bin/main.rs"], proc_macro_deps = all_crate_deps(proc_macro = True), visibility = ["//visibility:public"], deps = all_crate_deps(normal = True) + [ ":libpica", ], )