/*
 * 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.
 */

cc_defaults {
    name: "storaged_defaults",

    shared_libs: [
        "android.hardware.health@1.0",
        "android.hardware.health@2.0",
        "libbase",
        "libbinder",
        "libcutils",
        "libhidlbase",
        "libhidltransport",
        "libhwbinder",
        "liblog",
        "libprotobuf-cpp-lite",
        "libsysutils",
        "libutils",
        "libz",
    ],

    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",
        "binder/android/os/storaged/IStoragedPrivate.aidl",
    ],

    static_libs: ["libhealthhalutils"],

    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: [
        "libhealthhalutils",
        "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: [
        "libhealthhalutils",
        "libstoraged",
    ],
}

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