// 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_ryu_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_ryu_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSL-1.0",
        "SPDX-license-identifier-MIT",
    ],
    license_text: [
        "LICENSE",
        "LICENSE-APACHE",
        "LICENSE-BOOST",
    ],
}

rust_library {
    name: "libryu",
    host_supported: true,
    crate_name: "ryu",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.5",
    srcs: ["src/lib.rs"],
    edition: "2018",
    cfgs: [
        "integer128",
        "maybe_uninit",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
}

rust_defaults {
    name: "ryu_test_defaults",
    crate_name: "ryu",
    cargo_env_compat: true,
    cargo_pkg_version: "1.0.5",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    cfgs: [
        "integer128",
        "maybe_uninit",
    ],
    rustlibs: [
        "libnum_cpus",
        "librand",
        "librand_xorshift",
        "libryu",
    ],
}

rust_test_host {
    name: "ryu_host_test_tests_common_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/common_test.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "ryu_device_test_tests_common_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/common_test.rs"],
}

rust_test_host {
    name: "ryu_host_test_tests_d2s_table_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/d2s_table_test.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "ryu_device_test_tests_d2s_table_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/d2s_table_test.rs"],
}

rust_test_host {
    name: "ryu_host_test_tests_d2s_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/d2s_test.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "ryu_device_test_tests_d2s_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/d2s_test.rs"],
}

rust_test_host {
    name: "ryu_host_test_tests_f2s_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/f2s_test.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "ryu_device_test_tests_f2s_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/f2s_test.rs"],
}

rust_test_host {
    name: "ryu_host_test_tests_s2d_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/s2d_test.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "ryu_device_test_tests_s2d_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/s2d_test.rs"],
}

rust_test_host {
    name: "ryu_host_test_tests_s2f_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/s2f_test.rs"],
    test_options: {
        unit_test: true,
    },
}

rust_test {
    name: "ryu_device_test_tests_s2f_test",
    defaults: ["ryu_test_defaults"],
    srcs: ["tests/s2f_test.rs"],
}
