load("@rules_cc//cc:defs.bzl", "cc_library")
load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
load("@rules_rust//cargo:defs.bzl", "cargo_build_script")
cargo_build_script(
name = "build_script",
srcs = ["build.rs"],
build_script_env = {
"BAZEL": "1",
},
crate_features = [
"renaming",
"static",
"icu_version_in_env",
],
rustc_env = {
"RUST_ICU_MAJOR_VERSION_NUMBER": "74",
},
deps = [
"//rust_icu_release",
"@crates//:anyhow",
"@crates//:lazy_static",
],
)
rust_library(
name = "rust_icu_sys",
srcs = glob([
"src/**/*.rs",
"tests/**/*.rs",
"bindgen/**/*.rs",
]),
crate_features = [
"renaming",
"static",
"icu_version_in_env",
],
link_deps = [
"//bazel:icu_backend",
":icudata_alwayslink",
],
proc_macro_deps = ["@crates//:paste"],
rustc_env = {
"RUST_ICU_MAJOR_VERSION_NUMBER": "74",
},
visibility = ["//visibility:public"],
deps = [
":build_script",
"@crates//:libc",
],
)
rust_test(
name = "rust_icu_sys_test",
crate = ":rust_icu_sys",
crate_features = [
"renaming",
"static",
"icu_version_in_env",
],
rustc_env = {
"RUST_ICU_MAJOR_VERSION_NUMBER": "74",
},
)
filegroup(
name = "libicudata_file",
srcs = ["//bazel:icu_backend"],
output_group = "libicudata.a",
)
cc_library(
name = "icudata_alwayslink",
srcs = [":libicudata_file"],
alwayslink = True,
)
load("//bazel:publish.bzl", "cargo_publish")
cargo_publish(
name = "publish",
crate_dir = "rust_icu_sys",
visibility = ["//visibility:public"],
deps = ["//rust_icu_release:publish"],
)