// This file is generated by cargo2android.py --run --device --tests --features default,tags.
// Do not modify this file as changes will be overridden on upgrade.

package {
    default_applicable_licenses: ["external_rust_crates_serde_cbor_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_serde_cbor_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE-APACHE",
        "LICENSE-MIT",
    ],
}

rust_library {
    name: "libserde_cbor",
    host_supported: true,
    crate_name: "serde_cbor",
    cargo_env_compat: true,
    cargo_pkg_version: "0.11.2",
    srcs: ["src/lib.rs"],
    edition: "2018",
    features: [
        "default",
        "std",
        "tags",
    ],
    rustlibs: [
        "libhalf",
        "libserde",
    ],
}

rust_defaults {
    name: "serde_cbor_test_defaults",
    crate_name: "serde_cbor",
    srcs: ["src/lib.rs"],
    cargo_env_compat: true,
    cargo_pkg_version: "0.11.2",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: [
        "default",
        "std",
        "tags",
    ],
    rustlibs: [
        "libhalf",
        "libserde",
    ],
    proc_macros: ["libserde_derive"],
}

rust_test_host {
    name: "serde_cbor_host_test_src_lib",
    defaults: ["serde_cbor_test_defaults"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "serde_cbor_device_test_src_lib",
    defaults: ["serde_cbor_test_defaults"],
}

rust_defaults {
    name: "serde_cbor_test_defaults_serde_cbor",
    crate_name: "serde_cbor",
    cargo_env_compat: true,
    cargo_pkg_version: "0.11.2",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: [
        "default",
        "std",
        "tags",
    ],
    rustlibs: [
        "libhalf",
        "libserde",
        "libserde_cbor",
    ],
    proc_macros: ["libserde_derive"],
}

rust_test_host {
    name: "serde_cbor_host_test_tests_bennofs",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/bennofs.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "serde_cbor_device_test_tests_bennofs",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/bennofs.rs"],
}

rust_test_host {
    name: "serde_cbor_host_test_tests_canonical",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/canonical.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "serde_cbor_device_test_tests_canonical",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/canonical.rs"],
}

rust_test_host {
    name: "serde_cbor_host_test_tests_de",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/de.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "serde_cbor_device_test_tests_de",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/de.rs"],
}

rust_test_host {
    name: "serde_cbor_host_test_tests_enum",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/enum.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "serde_cbor_device_test_tests_enum",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/enum.rs"],
}

rust_test_host {
    name: "serde_cbor_host_test_tests_ser",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/ser.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "serde_cbor_device_test_tests_ser",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/ser.rs"],
}

rust_test_host {
    name: "serde_cbor_host_test_tests_std_types",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/std_types.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "serde_cbor_device_test_tests_std_types",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/std_types.rs"],
}

rust_test_host {
    name: "serde_cbor_host_test_tests_tags",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/tags.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "serde_cbor_device_test_tests_tags",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/tags.rs"],
}

rust_test_host {
    name: "serde_cbor_host_test_tests_value",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/value.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "serde_cbor_device_test_tests_value",
    defaults: ["serde_cbor_test_defaults_serde_cbor"],
    srcs: ["tests/value.rs"],
}
