/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

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

cc_defaults {
    name: "storaged_defaults",

    shared_libs: [
        "android.hardware.health@1.0",
        "android.hardware.health@2.0",
        "android.hardware.health-V2-ndk",
        "libbase",
        "libbinder",
        "libbinder_ndk",
        "libcutils",
        "libhidlbase",
        "liblog",
        "libprotobuf-cpp-lite",
        "libutils",
        "libz",
        "packagemanager_aidl-cpp",
    ],

    static_libs: [
        "android.hardware.health-translate-ndk",
        "libhealthhalutils",
        "libhealthshim",
    ],

    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra",
        "-Wno-unused-parameter"
    ],
}

cc_library_static {
    name: "libstoraged",

    defaults: ["storaged_defaults"],

    aidl: {
        export_aidl_headers: true,
        local_include_dirs: ["binder"],
        include_dirs: ["frameworks/native/aidl/binder"],
    },

    srcs: [
        "storaged.cpp",
        "storaged_diskstats.cpp",
        "storaged_info.cpp",
        "storaged_service.cpp",
        "storaged_utils.cpp",
        "storaged_uid_monitor.cpp",
        "uid_info.cpp",
        "storaged.proto",
        ":storaged_aidl",
        ":storaged_aidl_private",
    ],

    header_libs: ["libbatteryservice_headers"],

    logtags: ["EventLogTags.logtags"],

    proto: {
        type: "lite",
        export_proto_headers: true,
    },

    export_include_dirs: ["include"],
}

cc_binary {
    name: "storaged",

    defaults: ["storaged_defaults"],

    init_rc: ["storaged.rc"],

    srcs: ["main.cpp"],

    static_libs: [
        "libstoraged",
    ],
}

/*
 * Run with:
 *  adb shell /data/nativetest/storaged-unit-tests/storaged-unit-tests
 */
cc_test {
    name: "storaged-unit-tests",

    defaults: ["storaged_defaults"],

    srcs: ["tests/storaged_test.cpp"],

    static_libs: [
        "libstoraged",
    ],
    test_suites: [
        "general-tests",
    ],
}

// AIDL interface between storaged and framework.jar
filegroup {
    name: "storaged_aidl",
    srcs: [
        "binder/android/os/IStoraged.aidl",
    ],
    path: "binder",
}

filegroup {
    name: "storaged_aidl_private",
    srcs: [
        "binder/android/os/storaged/IStoragedPrivate.aidl",
    ],
    path: "binder",
}

cc_defaults {
    name: "storaged_service_fuzzer_defaults",
    defaults: [
        "storaged_defaults",
        "service_fuzzer_defaults",
        "fuzzer_disable_leaks",
    ],
    static_libs: [
        "libstoraged",
    ],
    fuzz_config: {
        cc: [
            "dvander@google.com",
        ],
        triage_assignee: "waghpawan@google.com",
    },
}

cc_fuzz {
    name: "storaged_service_fuzzer",
    defaults: [
        "storaged_service_fuzzer_defaults",
    ],
    srcs: ["tests/fuzzers/storaged_service_fuzzer.cpp"],
}

cc_fuzz {
    name: "storaged_private_service_fuzzer",
    defaults: [
        "storaged_service_fuzzer_defaults",
    ],
    srcs: ["tests/fuzzers/storaged_private_service_fuzzer.cpp"],
}
