package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

// The hierarchy of Soong modules to produce a vmbase-based binary is
//
// 0. rlibs may be used to provide high-level code (see "vmbase_rlib_defaults");
// 1. rust_ffi_static packages low-level Rust code and any rlib into a static
//    library (see "vmbase_ffi_defaults") that cc_binary supports;
// 2. cc_library_static may be used for extra C code (see "vmbase_cc_defaults");
// 3. cc_binary produces an ELF from the (single) Rust-wrapping static library,
//    optional extra C libraries, and linker script (see "vmbase_elf_defaults");
// 4. raw_binary strips the ELF into an image that can be loaded to memory;

// Used by intermediate rust_library_rlib for vmbase-based binaries.
rust_defaults {
    name: "vmbase_rlib_defaults",
    defaults: ["avf_build_flags_rust"],
    edition: "2021",
    prefer_rlib: true,
    host_supported: false,
    enabled: false,
    no_stdlibs: true,
    stdlibs: [
        "libcompiler_builtins.rust_sysroot",
        "libcore.rust_sysroot",
    ],
    target: {
        android_arm64: {
            enabled: true,
        },
    },
}

// Used by the "top-level" rust_ffi_static of vmbase-based binaries.
rust_defaults {
    name: "vmbase_ffi_defaults",
    defaults: ["vmbase_rlib_defaults"],
}

// Used by extra cc_library_static linked into the final ELF.
cc_defaults {
    name: "vmbase_cc_defaults",
    defaults: ["avf_build_flags_cc"],
    nocrt: true,
    no_libcrt: true,
    system_shared_libs: [],
    stl: "none",
    installable: false,
    enabled: false,
    target: {
        android_arm64: {
            enabled: true,
        },
    },
    sanitize: {
        hwaddress: false,
    },
    native_coverage: false,
    // TODO(b/346974429): Workaround pvmfw failure when enabling full LTO
    lto_O0: true,
}

// Used by cc_binary when producing the ELF of a vmbase-based binary.
cc_defaults {
    name: "vmbase_elf_defaults",
    defaults: ["vmbase_cc_defaults"],
    static_executable: true,
    static_libs: [
        "libvmbase_entry",
    ],
}

rust_library_rlib {
    name: "libvmbase",
    defaults: ["vmbase_rlib_defaults"],
    crate_name: "vmbase",
    srcs: ["src/lib.rs"],
    rustlibs: [
        "libaarch64_paging",
        "libbuddy_system_allocator",
        "libcstr",
        "libfdtpci",
        "liblibfdt",
        "liblog_rust_nostd",
        "libonce_cell_nostd",
        "libsmccc",
        "libspin_nostd",
        "libstatic_assertions",
        "libtinyvec_nostd",
        "libuuid_nostd",
        "libvirtio_drivers",
        "libzerocopy_nostd",
        "libzeroize_nostd",
    ],
    whole_static_libs: [
        "librust_baremetal",
    ],
    // TODO(b/277859415, b/277860860): Drop "compat_android_13".
    features: [
        "compat_android_13",
        "cpu_feat_hafdbs",
    ],
}

cc_library_static {
    name: "libvmbase_entry",
    defaults: ["vmbase_cc_defaults"],
    srcs: [
        "entry.S",
        "exceptions.S",
        "exceptions_panic.S",
    ],
}

filegroup {
    name: "vmbase_sections",
    srcs: ["sections.ld"],
}
