// 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_vulkano_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.
//
// large-scale-change included anything that looked like it might be a license
// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
//
// Please consider removing redundant or irrelevant files from 'license_text:'.
// See: http://go/android-license-faq
license {
    name: "external_rust_crates_vulkano_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE-APACHE",
        "LICENSE-MIT",
    ],
}

genrule {
    name: "copy_vulkano_build_out",
    srcs: ["out/*"],
    cmd: "cp $(in) $(genDir)",
    out: ["autogen.rs"],
}

rust_library {
    name: "libvulkano",
    // has rustc warnings
    host_supported: true,
    crate_name: "vulkano",
    cargo_env_compat: true,
    cargo_pkg_version: "0.25.0",
    srcs: [
        "src/lib.rs",
        ":copy_vulkano_build_out",
    ],
    edition: "2018",
    rustlibs: [
        "libash_rust",
        "libcrossbeam_queue",
        "libfnv",
        "libhalf",
        "liblazy_static",
        "libparking_lot",
        "libshared_library",
        "libsmallvec",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
}

rust_defaults {
    name: "vulkano_test_defaults",
    crate_name: "vulkano",
    // has rustc warnings
    srcs: [
        "src/lib.rs",
        ":copy_vulkano_build_out",
    ],
    cargo_env_compat: true,
    cargo_pkg_version: "0.25.0",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    rustlibs: [
        "libash_rust",
        "libcrossbeam_queue",
        "libfnv",
        "libhalf",
        "liblazy_static",
        "libparking_lot",
        "libshared_library",
        "libsmallvec",
    ],
}

rust_test_host {
    name: "vulkano_host_test_src_lib",
    defaults: ["vulkano_test_defaults"],
    // Manually disabled as these tests depend on specific graphics libraries
    // being available on the machine running the tests.
    test_options: {
        unit_test: false,
    },
}

rust_test {
    name: "vulkano_device_test_src_lib",
    defaults: ["vulkano_test_defaults"],
}
