/*
 * Copyright (C) 2024 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: "android.hardware.health-service.automotive-defaults",
    defaults: [
        "libhealth_aidl_impl_user",
        "libhealth_aidl_charger_defaults",
    ],

    relative_install_path: "hw",

    overrides: [
        "android.hardware.health-service.example",
        "com.google.cf.health",
    ],

    vintf_fragments: ["android.hardware.health-service.automotive.xml"],

    srcs: [
        "HealthImpl.cpp",
    ],

    cflags: [
        "-Wall",
        "-Werror",
    ],

    static_libs: [
        "libhealth_aidl_impl",
    ],
}

cc_binary {
    name: "android.hardware.health-service.automotive",
    defaults: ["android.hardware.health-service.automotive-defaults"],
    proprietary: true,
    init_rc: ["android.hardware.health-service.automotive.rc"],
    overrides: ["charger"],
}

cc_binary {
    name: "android.hardware.health-service.automotive_recovery",
    defaults: ["android.hardware.health-service.automotive-defaults"],
    recovery: true,
    init_rc: ["android.hardware.health-service.automotive_recovery.rc"],
    overrides: ["charger.recovery"],
}
