blob: 7dd3a4a990c4e372c96d7e1a965f1e57be7e5e8e [file] [log] [blame]
load("@rules_rust//cargo:defs.bzl", "cargo_build_script")
load("@rules_rust//rust:defs.bzl", "rust_test")
# generate a file
genrule(
name = "data_generator",
outs = ["generated.data"],
cmd = "echo hello > $@",
)
_data = [
# we should be able to read non-generated source/data files
"source.file",
# and generated files as well
"generated.data",
# we should also be able to access external binaries
# such as protoc.
"@com_google_protobuf//:protoc",
]
cargo_build_script(
name = "build",
srcs = ["build.rs"],
build_script_env = {
"GENERATED_DATA": "$(location generated.data)",
"SOME_TOOL": "$(execpath @com_google_protobuf//:protoc)",
# both execpath and location should work
"SOURCE_FILE": "$(execpath source.file)",
},
data = _data,
)
rust_test(
name = "test",
srcs = [
"main.rs",
],
data = _data,
edition = "2018",
rustc_env = {
"GENERATED_DATA_ABS": "$(execpath generated.data)",
"GENERATED_DATA_ROOT": "$(rootpath generated.data)",
"SOME_TOOL": "$(rootpath @com_google_protobuf//:protoc)",
"SOURCE_FILE": "$(rootpath source.file)",
},
deps = [
":build",
],
)