"""
@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 "//bindgen/raze", which limits external
    # visibility to explicit Cargo.toml dependencies.
    "//visibility:public",
])

licenses([
    "notice",  # BSD-3-Clause from expression "BSD-3-Clause"
])

# 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 = "bindgen_build_script",
    srcs = glob(["**/*.rs"]),
    build_script_env = {
    },
    crate_features = [
        "clap",
        "default",
        "env_logger",
        "log",
        "logging",
        "runtime",
        "which",
        "which-rustfmt",
    ],
    crate_root = "build.rs",
    data = glob(["**"]),
    edition = "2018",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "manual",
    ],
    version = "0.58.1",
    visibility = ["//visibility:private"],
    deps = [
        "@rules_rust_bindgen__clang_sys__1_2_0//:clang_sys",
    ],
)

rust_binary(
    # Prefix bin name to disambiguate from (probable) collision with lib name
    # N.B.: The exact form of this is subject to change.
    name = "cargo_bin_bindgen",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "clap",
        "default",
        "env_logger",
        "log",
        "logging",
        "runtime",
        "which",
        "which-rustfmt",
    ],
    crate_root = "src/main.rs",
    data = [],
    edition = "2018",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "crate-name=bindgen",
        "manual",
    ],
    version = "0.58.1",
    # buildifier: leave-alone
    deps = [
        ":bindgen",
        ":bindgen_build_script",
        "@rules_rust_bindgen__bitflags__1_2_1//:bitflags",
        "@rules_rust_bindgen__cexpr__0_4_0//:cexpr",
        "@rules_rust_bindgen__clang_sys__1_2_0//:clang_sys",
        "@rules_rust_bindgen__clap__2_33_3//:clap",
        "@rules_rust_bindgen__env_logger__0_8_3//:env_logger",
        "@rules_rust_bindgen__lazy_static__1_4_0//:lazy_static",
        "@rules_rust_bindgen__lazycell__1_3_0//:lazycell",
        "@rules_rust_bindgen__log__0_4_14//:log",
        "@rules_rust_bindgen__peeking_take_while__0_1_2//:peeking_take_while",
        "@rules_rust_bindgen__proc_macro2__1_0_26//:proc_macro2",
        "@rules_rust_bindgen__quote__1_0_9//:quote",
        "@rules_rust_bindgen__regex__1_5_4//:regex",
        "@rules_rust_bindgen__rustc_hash__1_1_0//:rustc_hash",
        "@rules_rust_bindgen__shlex__1_0_0//:shlex",
        "@rules_rust_bindgen__which__3_1_1//:which",
    ],
)

rust_library(
    name = "bindgen",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "clap",
        "default",
        "env_logger",
        "log",
        "logging",
        "runtime",
        "which",
        "which-rustfmt",
    ],
    crate_root = "src/lib.rs",
    data = [],
    edition = "2018",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-raze",
        "crate-name=bindgen",
        "manual",
    ],
    version = "0.58.1",
    # buildifier: leave-alone
    deps = [
        ":bindgen_build_script",
        "@rules_rust_bindgen__bitflags__1_2_1//:bitflags",
        "@rules_rust_bindgen__cexpr__0_4_0//:cexpr",
        "@rules_rust_bindgen__clang_sys__1_2_0//:clang_sys",
        "@rules_rust_bindgen__clap__2_33_3//:clap",
        "@rules_rust_bindgen__env_logger__0_8_3//:env_logger",
        "@rules_rust_bindgen__lazy_static__1_4_0//:lazy_static",
        "@rules_rust_bindgen__lazycell__1_3_0//:lazycell",
        "@rules_rust_bindgen__log__0_4_14//:log",
        "@rules_rust_bindgen__peeking_take_while__0_1_2//:peeking_take_while",
        "@rules_rust_bindgen__proc_macro2__1_0_26//:proc_macro2",
        "@rules_rust_bindgen__quote__1_0_9//:quote",
        "@rules_rust_bindgen__regex__1_5_4//:regex",
        "@rules_rust_bindgen__rustc_hash__1_1_0//:rustc_hash",
        "@rules_rust_bindgen__shlex__1_0_0//:shlex",
        "@rules_rust_bindgen__which__3_1_1//:which",
    ],
)
