Compile and execute a rust build script to generate build attributes
This rules take the same arguments as rust_binary.
Example:
Suppose you have a crate with a cargo build script build.rs:
[workspace]/
hello_lib/
BUILD
build.rs
src/
lib.rs
Then you want to use the build script in the following:
hello_lib/BUILD:
package(default_visibility = ["//visibility:public"]) load("@io_bazel_rules_rust//rust:rust.bzl", "rust_binary", "rust_library") load("@io_bazel_rules_rust//cargo:cargo_build_script.bzl", "cargo_build_script") # This will run the build script from the root of the workspace, and # collect the outputs. cargo_build_script( name = "build_script", srcs = ["build.rs"], # Data are shipped during execution. data = ["src/lib.rs"], # Environment variables passed during build.rs execution build_script_env = {"CARGO_PKG_VERSION": "0.1.2"}, ) rust_library( name = "hello_lib", srcs = [ "src/lib.rs", ], deps = [":build_script"], )
The hello_lib target will be build with the flags and the environment variables declared by the build script in addition to the file generated by it.
PARAMETERS
| Name | Description | Default Value |
|---|---|---|
| name | - | none |
| crate_name | - | "" |
| crate_features | - | [] |
| deps | - | [] |
| build_script_env | - | {} |
| kwargs | - | none |