//
// Copyright 2020 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_binary {
    name: "android.automotive.sv.service@1.0-impl",
    vendor: true,
    srcs: [
        "CoreLibSetupHelper.cpp",
        "SurroundViewService.cpp",
        "SurroundView2dSession.cpp",
        "SurroundView3dSession.cpp",
        "service.cpp",
    ],
    init_rc: ["android.automotive.sv.service@1.0-impl.rc"],
    shared_libs: [
        "android.hardware.automotive.sv@1.0",
        "android.hidl.memory@1.0",
        "libbase",
        "libbinder",
        "libcore_lib_shared",
        "libcutils",
        "libhardware",
        "libhidlbase",
        "libhidlmemory",
        "libui",
        "libutils",
    ],
    required: [
        "cam0.png",
        "cam1.png",
        "cam2.png",
        "cam3.png",
    ],
    // Disable builds except for arm64 and emulator devices
    enabled: false,
    arch: {
        arm64: {
            enabled: true,
        },
        x86: {
            enabled: true,
        },
        x86_64: {
            enabled: true,
        },
    },
    vintf_fragments: [
        "manifest_android.hardware.automotive.sv@1.0.xml",
    ],
}

cc_prebuilt_library_shared {
    name: "libcore_lib_shared",
    proprietary: true,
    arch: {
        arm64: {
            srcs: ["lib/arm64/libcore_lib_shared.so"]
        },
        x86: {
            srcs: ["lib/x86/libcore_lib.so"]
        },
        x86_64: {
            srcs: ["lib/x86-64/libcore_lib.so"]
        },
    },
    shared_libs: [
        "libEGL",
        "libGLESv2",
        "libGLESv3",
        "libc",
        "libm",
        "libdl",
        "libz",
        "liblog",
    ],
}

prebuilt_etc {
    name: "cam0.png",
    src: "test_data/0.png",
    sub_dir: "automotive/sv",
}

prebuilt_etc {
    name: "cam1.png",
    src: "test_data/1.png",
    sub_dir: "automotive/sv",
}

prebuilt_etc {
    name: "cam2.png",
    src: "test_data/2.png",
    sub_dir: "automotive/sv",
}

prebuilt_etc {
    name: "cam3.png",
    src: "test_data/3.png",
    sub_dir: "automotive/sv",
}

