###############################################################################
# @generated
# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
# regenerate this file, run the following:
#
#     bazel run //third_party/rust:crate_index
###############################################################################

load("@rules_rust//cargo:defs.bzl", "cargo_build_script")
load("@rules_rust//rust:defs.bzl", "rust_library")

package(default_visibility = ["//visibility:public"])

# licenses([
#     "TODO",  # MIT/Apache-2.0
# ])

rust_library(
    name = "winapi",
    srcs = glob(["**/*.rs"]),
    compile_data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    crate_features = [
        "activation",
        "cfg",
        "cguid",
        "combaseapi",
        "commapi",
        "consoleapi",
        "errhandlingapi",
        "evntrace",
        "fileapi",
        "guiddef",
        "handleapi",
        "in6addr",
        "inaddr",
        "ioapiset",
        "knownfolders",
        "minwinbase",
        "minwindef",
        "mstcpip",
        "mswsock",
        "namedpipeapi",
        "ntdef",
        "ntsecapi",
        "objbase",
        "processenv",
        "profileapi",
        "roapi",
        "setupapi",
        "shlobj",
        "std",
        "synchapi",
        "sysinfoapi",
        "timezoneapi",
        "winbase",
        "wincon",
        "windef",
        "winerror",
        "winioctl",
        "winnt",
        "winsock2",
        "winstring",
        "ws2def",
        "ws2ipdef",
    ],
    crate_root = "src/lib.rs",
    edition = "2015",
    rustc_flags = ["--cap-lints=allow"],
    tags = [
        "cargo-bazel",
        "crate-name=winapi",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "0.3.9",
    deps = [
        "@crate_index__winapi-0.3.9//:build_script_build",
    ],
)

cargo_build_script(
    name = "winapi_build_script",
    srcs = glob(["**/*.rs"]),
    crate_features = [
        "activation",
        "cfg",
        "cguid",
        "combaseapi",
        "commapi",
        "consoleapi",
        "errhandlingapi",
        "evntrace",
        "fileapi",
        "guiddef",
        "handleapi",
        "in6addr",
        "inaddr",
        "ioapiset",
        "knownfolders",
        "minwinbase",
        "minwindef",
        "mstcpip",
        "mswsock",
        "namedpipeapi",
        "ntdef",
        "ntsecapi",
        "objbase",
        "processenv",
        "profileapi",
        "roapi",
        "setupapi",
        "shlobj",
        "std",
        "synchapi",
        "sysinfoapi",
        "timezoneapi",
        "winbase",
        "wincon",
        "windef",
        "winerror",
        "winioctl",
        "winnt",
        "winsock2",
        "winstring",
        "ws2def",
        "ws2ipdef",
    ],
    crate_name = "build_script_build",
    crate_root = "build.rs",
    data = glob(
        include = ["**"],
        exclude = [
            "**/* *",
            "BUILD",
            "BUILD.bazel",
            "WORKSPACE",
            "WORKSPACE.bazel",
        ],
    ),
    edition = "2015",
    rustc_flags = [
        "--cap-lints=allow",
    ],
    tags = [
        "cargo-bazel",
        "crate-name=winapi",
        "manual",
        "noclippy",
        "norustfmt",
    ],
    version = "0.3.9",
    visibility = ["//visibility:private"],
)

alias(
    name = "build_script_build",
    actual = "winapi_build_script",
    tags = ["manual"],
)
