// This file is generated by cargo_embargo.
// Do not modify this file as changes will be overridden on upgrade.

// We renamed the shared_libs dependence from libsqlite3 to libsqlite.
// srcs has been moved out of _defaults to work around b/163420435

package {
    default_applicable_licenses: [
        "external_rust_crates_libsqlite3-sys_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_libsqlite3-sys_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-MIT",
        "legacy_permissive",
    ],
    license_text: [
        "LICENSE",
    ],
}

rust_library {
    name: "liblibsqlite3_sys",
    host_supported: true,
    crate_name: "libsqlite3_sys",
    cargo_env_compat: true,
    cargo_pkg_version: "0.22.2",
    srcs: [
        "src/lib.rs",
        ":libsqlite3_bindgen",
    ],
    edition: "2018",
    features: [
        "default",
        "min_sqlite_version_3_6_8",
        "pkg-config",
        "vcpkg",
    ],
    shared_libs: ["libsqlite"],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
}

rust_test {
    name: "libsqlite3-sys_test_src_lib",
    host_supported: true,
    crate_name: "libsqlite3_sys",
    cargo_env_compat: true,
    cargo_pkg_version: "0.22.2",
    srcs: [
        "src/lib.rs",
        ":libsqlite3_bindgen",
    ],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    test_options: {
        unit_test: true,
    },
    edition: "2018",
    features: [
        "default",
        "min_sqlite_version_3_6_8",
        "pkg-config",
        "vcpkg",
    ],
    shared_libs: ["libsqlite"],
}

rust_bindgen {
    name: "libsqlite3_bindgen",
    host_supported: true,
    crate_name: "sqlite3_bindgen",
    custom_bindgen: "sqlite3_bindgen_build",
    wrapper_src: "wrapper.h",
    source_stem: "bindgen",
    header_libs: ["libsqlite"],
    defaults: ["sqlite-defaults"],
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
}

rust_test {
    name: "libsqlite3_bindgen_test",
    srcs: [":libsqlite3_bindgen"],
    crate_name: "sqlite3_bindgen_test",
    test_suites: ["general-tests"],
    auto_gen_config: true,
    clippy_lints: "none",
    lints: "none",
}
