// Copyright 2010 The Android Open Source Project

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

cc_library {
    name: "libsparse",
    host_supported: true,
    ramdisk_available: true,
    vendor_ramdisk_available: true,
    recovery_available: true,
    unique_host_soname: true,
    vendor_available: true,
    srcs: [
        "backed_block.cpp",
        "output_file.cpp",
        "sparse.cpp",
        "sparse_crc32.cpp",
        "sparse_err.cpp",
        "sparse_read.cpp",
    ],
    cflags: ["-Werror"],
    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
    shared_libs: [
        "libz",
        "libbase",
    ],
    target: {
        darwin: {
            enabled: true,
        },
        windows: {
            enabled: true,
        },
    },
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
}

cc_binary_host {
    name: "simg2img",
    srcs: [
        "simg2img.cpp",
        "sparse_crc32.cpp",
    ],
    static_libs: [
        "libsparse",
        "libz",
        "libbase",
    ],

    cflags: ["-Werror"],
    target: {
        darwin: {
            enabled: true,
        },
    },
}

cc_binary_host {
    name: "simg2img_static",
    srcs: [
        "simg2img.cpp",
        "sparse_crc32.cpp",
    ],
    static_libs: [
        "libsparse",
        "libz",
        "libbase",
    ],

    cflags: ["-Werror"],
    stl: "libc++_static",
    static_executable: true,
}

cc_binary_host {
    name: "img2simg",
    srcs: ["img2simg.cpp"],
    static_libs: [
        "libsparse",
        "libz",
        "libbase",
    ],

    cflags: ["-Werror"],
}

cc_binary_host {
    name: "append2simg",
    srcs: ["append2simg.cpp"],
    static_libs: [
        "libsparse",
        "libz",
        "libbase",
    ],

    cflags: ["-Werror"],
}

python_binary_host {
    name: "simg_dump",
    main: "simg_dump.py",
    srcs: ["simg_dump.py"],
    version: {
        py3: {
            embedded_launcher: true,
        },
    },
}

cc_fuzz {
    name: "sparse_fuzzer",
    host_supported: true,
    srcs: [
        "sparse_fuzzer.cpp",
    ],
    static_libs: [
        "libsparse",
        "libbase",
        "libz",
        "liblog",
    ],
}
