load("@bazel_skylib//rules:write_file.bzl", "write_file") load("//cargo:defs.bzl", "cargo_build_script") load("//rust:defs.bzl", "rust_test") # Test that tools are built in the exec configuration. cargo_build_script( name = "tools_exec_build_rs", srcs = ["build.rs"], build_script_env = { # Note that cargo_build_script working directories are not # guaranteed to be the execroot. Thus, the expanded value # is resolved to an absolute path with the help of it's # process wrapper resolving `${pwd}`. "EXPANDED_TOOLCHAIN_VAR": "$${pwd}/$(RUSTC)", "TOOL": "$(execpath :tool)", }, edition = "2018", links = "beep", # Add a flag to test that they're exposed to the build script rustc_flags = ["--verbose"], toolchains = ["//rust/toolchain:current_rust_toolchain"], tools = [":tool"], ) write_file( name = "tool", out = "tool-file", content = [""], ) rust_test( name = "tools_exec", srcs = ["tools_exec.rs"], edition = "2018", deps = [":tools_exec_build_rs"], )