package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "system_bt_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["system_bt_license"],
}

rust_defaults {
    name: "libbluetooth_core_rs_defaults",
    min_sdk_version: "Tiramisu",
    dylib: {
        enabled: false,
    },
    srcs: [
        "src/lib.rs",

        ":bluetooth_core_rust_packets",
    ],
    shared_libs: [
        "libbase",
    ],
    static_libs: [
        "libbt_shim_bridge",
        "libbt_shim_ffi",

        "libchrome",
        "libevent",
        "libmodpb64",
    ],
    proc_macros: [
        "libasync_trait",
        "libpaste",
    ],
    rustlibs: [
        "libanyhow",
        "libbitflags",
        "libbt_common_only_init_flags",
        "libcxx",
        "liblog_rust",
        "libscopeguard",

        // needed to work around duplicate symbols
        // caused by bug in Soong
        "libbt_shim",
    ],
    whole_static_libs: [
        "libbluetooth_core_rs_bridge",
    ],
    features: [
        // used to hide libbt_shim in Cargo builds, but
        // expose it to Soong to work around linker bug
        "via_android_bp",
    ],
    target: {
        android: {
            shared_libs: [
                "android.hardware.bluetooth@1.0",
                "android.hardware.bluetooth@1.1",
                "android.system.suspend-V1-ndk",
                "android.system.suspend.control-V1-ndk",
                "libbinder_ndk",
                "libcutils",
                "libhidlbase",
                "libstatslog_bt",
                "libutils",
            ],
        },
    },
    apex_available: ["com.android.btservices"],
}

rust_library {
    name: "libbluetooth_core_rs_for_facade",
    crate_name: "bluetooth_core_rs_for_facade",
    defaults: ["libbluetooth_core_rs_defaults"],
    rustlibs: [
        "libtokio",
    ],
    host_supported: true,
}

rust_ffi_static {
    name: "libbluetooth_core_rs",
    crate_name: "bluetooth_core",
    defaults: ["libbluetooth_core_rs_defaults"],
    rustlibs: [
        "libtokio",
    ],
    target: {
        android: {
            rustlibs: [
                "libandroid_logger",
            ],
        },
    },
    host_supported: true,
}

rust_test_host {
    name: "libbluetooth_core_rs_test",
    defaults: ["libbluetooth_core_rs_defaults"],
    rustlibs: [
        "libtokio_for_test",
        "libtokio_test",
    ],
}

cc_library_static {
    name: "libbluetooth_core_rs_bridge",
    defaults: ["bluetooth_cflags"],
    srcs: [
        "src/connection/ffi/connection_shim.cc",
        "src/core/ffi/module.cc",
        "src/gatt/ffi/gatt_shim.cc",
    ],
    include_dirs: [
        "packages/modules/Bluetooth/system",
        "packages/modules/Bluetooth/system/gd",
        "packages/modules/Bluetooth/system/include",
        "packages/modules/Bluetooth/system/stack/include",
        "packages/modules/Bluetooth/system/types",
    ],
    export_include_dirs: ["."],
    static_libs: [
        "libbluetooth_hci_pdl",
        "libbluetooth_log",
        "libbt_shim_bridge",
        "libbt_shim_ffi",
        "libchrome",
        "libflatbuffers-cpp",
    ],
    generated_headers: [
        "cxx-bridge-header",
        "libbluetooth_core_rs_bridge_codegen_header",

        "BluetoothGeneratedBundlerSchema_h_bfbs",
        "BluetoothGeneratedDumpsysDataSchema_h",
    ],
    export_generated_headers: [
        "libbluetooth_core_rs_bridge_codegen_header",
    ],
    host_supported: true,
    generated_sources: ["libbluetooth_core_rs_bridge_codegen"],
    apex_available: ["com.android.btservices"],
    min_sdk_version: "Tiramisu",
}

/// FFI codegen
///
/// The static library libbluetooth_core_rs_bridge is included by
/// libbluetooth_core_rs and depends on libbluetooth_core. libbluetooth
/// depends on libbluetooth_core_rs.
/// i.e.
/// libbluetooth -> {libbluetooth_core_rs, libbluetooth_core_rs_bridge} -> libbluetooth_core
///
/// Thus, FFI can be either:
///  * Rust to GD
///  * Legacy C++ to Rust
///     * Core to Rust only via injected callbacks (libbluetooth_core does not
///       depend on libbluetooth_core_rs)
///     * Legacy C++ to Rust can be made directly (as libbluetooth *does* depend
///       on libbluetooth_core_rs).
///
/// To add FFI for a new module, create an ffi.rs file, and add it to the filegroup below.

filegroup {
    name: "libbluetooth_core_rs_ffi",
    srcs: [
        "src/connection/ffi.rs",
        "src/core/ffi.rs",
        "src/gatt/ffi.rs",
    ],
}

gensrcs {
    name: "libbluetooth_core_rs_bridge_codegen_header",
    tools: ["cxxbridge"],
    cmd: "$(location cxxbridge) $(in) --header > $(out)",
    srcs: [":libbluetooth_core_rs_ffi"],
    output_extension: "rs.h",
    export_include_dirs: ["."],
}

gensrcs {
    name: "libbluetooth_core_rs_bridge_codegen",
    tools: ["cxxbridge"],
    cmd: "$(location cxxbridge) $(in) > $(out)",
    srcs: [":libbluetooth_core_rs_ffi"],
    output_extension: "cc",
}

genrule {
    name: "bluetooth_core_rust_packets",
    defaults: ["pdl_rust_noalloc_generator_defaults"],
    srcs: ["src/packets.pdl"],
    out: ["_packets.rs"],
}
