rust_icu_sys 5.8.0

Native bindings to the ICU4C library from Unicode.
Documentation
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"],
)