"""
@generated
cargo-raze crate build file.

DO NOT EDIT! Replaced on runs of cargo-raze
"""

# buildifier: disable=load
load("@bazel_skylib//lib:selects.bzl", "selects")

# buildifier: disable=load
load(
    "@rules_rust//rust:defs.bzl",
    "rust_binary",
    "rust_library",
    "rust_proc_macro",
    "rust_test",
)

package(default_visibility = [
    # Public for visibility by "@raze__crate__version//" targets.
    #
    # Prefer access through "//sys/complex/raze", which limits external
    # visibility to explicit Cargo.toml dependencies.
    "//visibility:public",
])

licenses([
    "notice",  # MIT from expression "MIT OR Apache-2.0"
])

# Generated Targets
# buildifier: disable=out-of-order-load
# buildifier: disable=load-on-top
load(
    "@rules_rust//cargo:cargo_build_script.bzl",
    "cargo_build_script",
)

cargo_build_script(
    name = "libz_sys_build_script",
    srcs = glob(["**/*.rs"]),
    build_script_env = {
    },
    crate_features = [
        "libc",
    ],
    crate_root = "build.rs",
    data = glob(["**"]),
    edition = "2015",
    links = "z",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "manual",
    ],
    version = "1.1.3",
    visibility = ["//visibility:private"],
    deps = [
        "@complex_sys__cc__1_0_69//:cc",
        "@complex_sys__pkg_config__0_3_19//:pkg_config",
    ] + selects.with_or({
        # cfg(target_env = "msvc")
        (
            "@rules_rust//rust/platform:i686-pc-windows-msvc",
            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
        ): [
            "@complex_sys__vcpkg__0_2_15//:vcpkg",
        ],
        "//conditions:default": [],
    }),
)

rust_library(
    name = "libz_sys",
    srcs = glob(["**/*.rs"]),
    aliases = {
    },
    crate_features = [
        "libc",
    ],
    crate_root = "src/lib.rs",
    data = [],
    edition = "2015",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "crate-name=libz-sys",
        "manual",
    ],
    version = "1.1.3",
    # buildifier: leave-alone
    deps = [
        ":libz_sys_build_script",
        "@complex_sys__libc__0_2_98//:libc",
    ] + selects.with_or({
        # cfg(target_env = "msvc")
        (
            "@rules_rust//rust/platform:i686-pc-windows-msvc",
            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
        ): [
        ],
        "//conditions:default": [],
    }),
)
