// Copyright (C) 2019 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.
//
//

// Build the Car service.

genrule {
    name: "statslog-Car-java-gen",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --java $(out) --module car --javaPackage com.android.car"
        + " --javaClass CarStatsLog",
    out: ["com/android/car/CarStatsLog.java"],
}

car_service_sources = [
    "src/**/*.java",
    ":statslog-Car-java-gen",
]

common_lib_deps = [
    "android.car.userlib",
    "android.car.watchdoglib",
    "android.hidl.base-V1.0-java",
    "android.hardware.automotive.audiocontrol-V1.0-java",
    "android.hardware.automotive.audiocontrol-V2.0-java",
    "android.hardware.automotive.vehicle-V2.0-java",
    "android.hardware.health-V1.0-java",
    "android.hardware.health-V2.0-java",
    "android.hardware.automotive.occupant_awareness-java",
    "vehicle-hal-support-lib",
    "car-systemtest",
    "com.android.car.procfsinspector-client",
    "blestream-protos",
    "SettingsLib",
    "androidx.preference_preference",
    "EncryptionRunner",
]

android_app {
    name: "CarService",

    srcs: car_service_sources,

    resource_dirs: ["res"],

    platform_apis: true,

    // Each update should be signed by OEMs
    certificate: "platform",
    privileged: true,

    optimize: {
        proguard_flags_files: ["proguard.flags"],
        enabled: false,
    },

    libs: ["android.car"],

    static_libs: common_lib_deps + [
        "car-frameworks-service",
    ],

    required: ["privapp_whitelist_com.android.car"],

    // Disable build in PDK, missing aidl import breaks build
    product_variables: {
        pdk: {
            enabled: false,
        },
    },
}

java_library {

    name: "car-service-common-util-static-lib",

    srcs: [
        "src/com/android/car/CarServiceBase.java",
        "src/com/android/car/CarServiceUtils.java",
        "src/com/android/car/CarLog.java",
        "src/com/android/car/Utils.java",
    ],

    product_variables: {
            pdk: {
                enabled: false,
            },
    },
}

//####################################################################################
// Build a static library to help mocking various car services in testing. This is meant to be used
// for internal unit tests around the car service.
//####################################################################################
android_library {
    name: "car-service-test-static-lib",

    srcs: car_service_sources,

    resource_dirs: ["res"],

    libs: [
        "android.car",
        "car-frameworks-service",
    ],

    static_libs: common_lib_deps,

    min_sdk_version: "25",

    product_variables: {
        pdk: {
            enabled: false,
        },
    },
}

//####################################################################################
// Build a library to help generate a testing library for external apps.
// We do not want to use statically linked libraries, as this will bloat the output jar with classes
// that can conflict with the user's environment.
//####################################################################################
android_library {
    name: "car-service-test-lib",

    srcs: car_service_sources,

    resource_dirs: ["res"],

    libs: common_lib_deps + [
        "android.car",
        "car-frameworks-service",
    ],

    min_sdk_version: "25",

    product_variables: {
        pdk: {
            enabled: false,
        },
    },
}

