// 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_quiche_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_quiche_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-ISC",
        "SPDX-license-identifier-OpenSSL",
        "legacy_unencumbered",
    ],
    license_text: [
        "COPYING",
    ],
}

cc_library_headers {
    name: "libquiche_ffi_headers",
    export_include_dirs: ["include"],
    apex_available: [
        "//apex_available:platform",
        "com.android.resolv",
    ],
    min_sdk_version: "29",
}

rust_defaults {
    name: "libquiche_defaults",
    stem: "libquiche",
    host_supported: true,
    crate_name: "quiche",
    cargo_env_compat: true,
    srcs: ["src/lib.rs"],
    edition: "2018",
    features: [
        "boringssl",
        "default",
    ],
    // Link all crates statically to create a self-contained .so library.
    rlibs: [
        "liblazy_static",
        "liblibc",
        "liblibm",
        "liblog_rust",
        "libring",
    ],
    prefer_rlib: true,
    // For DnsResolver (Mainline module introduced in Q).
    apex_available: [
        "//apex_available:platform",
        "com.android.resolv",
    ],
    min_sdk_version: "29",
}

rust_ffi {
    name: "libquiche_ffi",
    defaults: ["libquiche_defaults"],
    shared_libs: [
        "libcrypto",
        "libssl",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.resolv",
    ],
    min_sdk_version: "29",
}

rust_library {
    name: "libquiche",
    defaults: ["libquiche_defaults"],
    shared_libs: [
        "libcrypto",
        "libssl",
    ],
}

// This target is used by doh_unit_test to prevent compatibility issues
// because doh_unit_test needs to be run on the R platform.
rust_library_rlib {
    name: "libquiche_static",
    defaults: ["libquiche_defaults"],
    static_libs: [
        "libcrypto_static",
        "libssl",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.resolv",
    ],
    min_sdk_version: "29",
}

rust_defaults {
    name: "quiche_test_defaults",
    crate_name: "quiche",
    cargo_env_compat: true,
    srcs: ["src/lib.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: [
        "boringssl-vendored",
        "default",
    ],
    rustlibs: [
        "liblazy_static",
        "liblibc",
        "liblibm",
        "liblog_rust",
        "libmio",
        "libring",
        "liburl",
    ],
    data: [
        "examples/cert.crt",
        "examples/cert.key",
        "examples/cert-big.crt",
        "examples/rootca.crt",
    ],
}

rust_test_host {
    name: "quiche_host_test_src_lib",
    defaults: ["quiche_test_defaults"],
    test_options: {
        unit_test: true,
    },
    shared_libs: [
        "libcrypto",
        "libssl",
    ],
}

rust_test {
    name: "quiche_device_test_src_lib",
    defaults: ["quiche_test_defaults"],
    // To run this test in R platform, it's required to statically link
    // libcrypto and libssl.
    static_libs: [
        "libcrypto_static",
        "libssl",
    ],
}
