// This file is generated by cargo2android.py --config cargo2android.json.
// Do not modify this file as changes will be overridden on upgrade.

package {
    default_applicable_licenses: ["external_rust_crates_bindgen_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
    name: "external_rust_crates_bindgen_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
    ],
    license_text: [
        "LICENSE",
    ],
}

genrule {
    name: "copy_bindgen_build_out",
    srcs: ["out/*"],
    cmd: "cp $(in) $(genDir)",
    out: [
        "host-target.txt",
        "tests.rs",
    ],
}

rust_binary_host {
    name: "bindgen",
    // has rustc warnings
    crate_name: "bindgen",
    cargo_env_compat: true,
    cargo_pkg_version: "0.59.2",
    srcs: [
        "src/main.rs",
        ":copy_bindgen_build_out",
    ],
    edition: "2018",
    features: [
        "clap",
        "runtime",
        "which",
        "which-rustfmt",
    ],
    rustlibs: [
        "libbindgen",
        "libbitflags",
        "libcexpr",
        "libclang_sys",
        "libclap",
        "liblazy_static",
        "liblazycell",
        "libpeeking_take_while",
        "libproc_macro2",
        "libquote",
        "libregex",
        "librustc_hash",
        "libshlex",
        "libwhich",
    ],
    compile_multilib: "first",
}

rust_library_host {
    name: "libbindgen",
    // has rustc warnings
    crate_name: "bindgen",
    cargo_env_compat: true,
    cargo_pkg_version: "0.59.2",
    srcs: [
        "src/lib.rs",
        ":copy_bindgen_build_out",
    ],
    edition: "2018",
    features: [
        "clap",
        "runtime",
        "which",
        "which-rustfmt",
    ],
    rustlibs: [
        "libbitflags",
        "libcexpr",
        "libclang_sys",
        "libclap",
        "liblazy_static",
        "liblazycell",
        "libpeeking_take_while",
        "libproc_macro2",
        "libquote",
        "libregex",
        "librustc_hash",
        "libshlex",
        "libwhich",
    ],
    compile_multilib: "first",
}
