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

cc_defaults {
    name: "vold_default_flags",

    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra",
        "-Wno-missing-field-initializers",
        "-Wno-unused-parameter",
        "-Wno-unused-variable",
    ],

    clang: true,

    tidy: true,
    tidy_checks: [
        "-*",
        "cert-*",
        "clang-analyzer-security*",
        "android-*",
    ],
    tidy_flags: [
        "-warnings-as-errors=clang-analyzer-security*,cert-*",
    ],
}

cc_defaults {
    name: "vold_default_libs",

    static_libs: [
        "libasync_safe",
        "libavb",
        "libbootloader_message",
        "libdm",
        "libext2_uuid",
        "libfec",
        "libfec_rs",
        "libfs_avb",
        "libfs_mgr",
        "libscrypt_static",
        "libsquashfs_utils",
        "libvold_binder",
    ],
    shared_libs: [
        "android.hardware.boot@1.0",
        "libbase",
        "libbinder",
        "libcrypto",
        "libcrypto_utils",
        "libcutils",
        "libdiskconfig",
        "libext4_utils",
        "libf2fs_sparseblock",
        "libgsi",
        "libhardware",
        "libhardware_legacy",
        "libincfs",
        "libhidlbase",
        "libkeyutils",
        "liblog",
        "liblogwrap",
        "libselinux",
        "libsysutils",
        "libutils",
    ],
}

cc_library_static {
    name: "libvold_binder",
    defaults: ["vold_default_flags"],

    srcs: [
        ":vold_aidl",
    ],
    shared_libs: [
        "libbinder",
        "libutils",
    ],
    aidl: {
        local_include_dirs: ["binder"],
        include_dirs: [
            "frameworks/native/aidl/binder",
            "frameworks/base/core/java",
        ],
        export_aidl_headers: true,
    },
    whole_static_libs: [
        "libincremental_aidl-cpp",
    ],
    export_shared_lib_headers: [
        "libbinder",
    ],
}

cc_library_headers {
    name: "libvold_headers",
    recovery_available: true,
    export_include_dirs: ["."],
}

// Static library factored out to support testing
cc_library_static {
    name: "libvold",
    defaults: [
        "vold_default_flags",
        "vold_default_libs",
    ],

    srcs: [
        "AppFuseUtil.cpp",
        "Benchmark.cpp",
        "Checkpoint.cpp",
        "CryptoType.cpp",
        "Devmapper.cpp",
        "EncryptInplace.cpp",
        "FileDeviceUtils.cpp",
        "FsCrypt.cpp",
        "IdleMaint.cpp",
        "KeyBuffer.cpp",
        "KeyStorage.cpp",
        "KeyUtil.cpp",
        "Keymaster.cpp",
        "Loop.cpp",
        "MetadataCrypt.cpp",
        "MoveStorage.cpp",
        "NetlinkHandler.cpp",
        "NetlinkManager.cpp",
        "Process.cpp",
        "ScryptParameters.cpp",
        "Utils.cpp",
        "VoldNativeService.cpp",
        "VoldNativeServiceValidation.cpp",
        "VoldUtil.cpp",
        "VolumeManager.cpp",
        "cryptfs.cpp",
        "fs/Exfat.cpp",
        "fs/Ext4.cpp",
        "fs/F2fs.cpp",
        "fs/Vfat.cpp",
        "model/Disk.cpp",
        "model/EmulatedVolume.cpp",
        "model/ObbVolume.cpp",
        "model/PrivateVolume.cpp",
        "model/PublicVolume.cpp",
        "model/StubVolume.cpp",
        "model/VolumeBase.cpp",
        "model/VolumeEncryption.cpp",
    ],
    product_variables: {
        arc: {
            exclude_srcs: [
                "model/StubVolume.cpp",
            ],
            static_libs: [
                "libarcvolume",
            ],
        },
        debuggable: {
            cppflags: ["-D__ANDROID_DEBUGGABLE__"],
        },
    },
    shared_libs: [
        "android.hardware.health.storage@1.0",
        "android.hardware.health.storage-V1-ndk_platform",
        "android.system.keystore2-V1-ndk_platform",
        "android.security.maintenance-ndk_platform",
        "libbinder_ndk",
        "libkeymint_support",
    ],
    whole_static_libs: [
        "com.android.sysprop.apex",
        "libc++fs"
    ],
}

cc_binary {
    name: "vold",
    defaults: [
        "vold_default_flags",
        "vold_default_libs",
    ],

    srcs: ["main.cpp"],
    static_libs: ["libvold"],
    init_rc: [
        "vold.rc",
        "wait_for_keymaster.rc",
    ],

    required: [
        "mke2fs",
        "vold_prepare_subdirs",
        "wait_for_keymaster",
    ],

    shared_libs: [
        "android.hardware.health.storage@1.0",
        "android.hardware.health.storage-V1-ndk_platform",
        "android.system.keystore2-V1-ndk_platform",
        "android.security.maintenance-ndk_platform",
        "libbinder_ndk",
        "libkeymint_support",
    ],

    product_variables: {
        arc: {
            exclude_srcs: [
                "model/StubVolume.cpp",
            ],
            static_libs: [
                "libarcvolume",
            ],
        },
	},
}

cc_binary {
    name: "vdc",
    defaults: ["vold_default_flags"],

    srcs: ["vdc.cpp"],
    shared_libs: [
        "libbase",
        "libbinder",
        "libcutils",
        "libutils",
    ],
    static_libs: [
        "libvold_binder",
    ],
    init_rc: ["vdc.rc"],
}

cc_binary {
    name: "wait_for_keymaster",
    defaults: ["vold_default_flags"],

    srcs: [
        "wait_for_keymaster.cpp",
        "Keymaster.cpp",
    ],
    shared_libs: [
        "libbase",
        "libbinder",
        "libbinder_ndk",

        "android.system.keystore2-V1-ndk_platform",
        "android.security.maintenance-ndk_platform",
        "libhardware",
        "libhardware_legacy",
        "libhidlbase",
        "libkeymint_support",
        "libutils",
    ],
}

cc_binary {
    name: "secdiscard",
    defaults: ["vold_default_flags"],

    srcs: [
        "FileDeviceUtils.cpp",
        "secdiscard.cpp",
    ],
    shared_libs: ["libbase"],
}

cc_binary {
    name: "vold_prepare_subdirs",
    defaults: ["vold_default_flags"],

    srcs: ["vold_prepare_subdirs.cpp", "Utils.cpp"],
    shared_libs: [
        "libbase",
        "libcutils",
        "liblogwrap",
        "libselinux",
        "libutils",
    ],
    static_libs: [
        "libvold_binder",
    ],
}

filegroup {
    name: "vold_aidl",
    srcs: [
        "binder/android/os/IVold.aidl",
        "binder/android/os/IVoldListener.aidl",
        "binder/android/os/IVoldMountCallback.aidl",
        "binder/android/os/IVoldTaskListener.aidl",
    ],
    path: "binder",
}
