//
// 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_library {
    name : "libobj_reader",
    vendor : true,
    srcs: [
        "MtlReader.cpp",
        "ObjReader.cpp",
    ],
    shared_libs : [
        "libbase",
    ]
}

cc_test{
    name : "obj_reader_tests",
    test_suites : ["device-tests"],
    vendor : true,
    srcs : ["ObjReaderTests.cpp"],
    shared_libs : [
        "libobj_reader",
        "libcutils",
        "libbase",
        "libutils",
    ],
    required: [
        "VolvoXC40_low.obj",
        "VolvoXC40_low.mtl",
    ],
}

cc_library{
    name : "libanimation_module",
    vendor : true,
    srcs : [
        "AnimationModule.cpp",
    ],
    shared_libs : [
        "android.hardware.automotive.vehicle@2.0",
        "libbase",
        "libhidlbase",
        "libutils",
    ],
}

cc_test{
    name : "animation_module_tests",
    test_suites : ["device-tests"],
    vendor : true,
    srcs : ["AnimationModuleTests.cpp"],
    shared_libs : [
        "android.hardware.automotive.vehicle@2.0",
        "libanimation_module",
        "libcutils",
        "libbase",
        "libhidlbase",
        "libhardware",
        "libutils",
    ],
}

cc_library{
    name : "libvhal_handler",
    vendor : true,
    srcs : [
        "VhalHandler.cpp",
    ],
    shared_libs : [
        "android.hardware.automotive.vehicle@2.0",
        "android.hidl.memory@1.0",
        "libcutils",
        "libbase",
        "libbinder",
        "libhidlbase",
        "libhardware",
        "libhidlmemory",
        "libui",
        "libutils",
    ],
}

cc_test{
    name : "vhal_handler_tests",
    test_suites : ["device-tests"],
    vendor : true,
    srcs : ["VhalHandlerTests.cpp"],
    shared_libs : [
        "android.hardware.automotive.vehicle@2.0",
        "libvhal_handler",
        "libcutils",
        "libbase",
        "libbinder",
        "libhidlbase",
        "libhardware",
        "libhidlmemory",
        "libui",
        "libutils",
    ],
}

cc_binary{
    name : "android.automotive.sv.service@1.0-impl",
    vendor : true,
    srcs : [
        "AnimationModule.cpp",
        "CoreLibSetupHelper.cpp",
        "SurroundViewService.cpp",
        "SurroundView2dSession.cpp",
        "SurroundView3dSession.cpp",
        "VhalHandler.cpp",
        "service.cpp",
    ],
    init_rc : ["android.automotive.sv.service@1.0-impl.rc"],
    shared_libs : [
        "android.hardware.automotive.evs@1.1",
        "android.hardware.automotive.sv@1.0",
        "android.hardware.automotive.vehicle@2.0",
        "android.hidl.memory@1.0",
        "libbase",
        "libbinder",
        "libcamera_metadata",
        "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_shared.so"]},
        x86_64 : {srcs : ["lib/x86-64/libcore_lib_shared.so"]},
    },
    shared_libs : [
        "libutils",
        "libcutils",
        "libbase",
        "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",
}

prebuilt_etc {
    name: "cube.obj",
    src: "test_data/cube.obj",
    sub_dir: "automotive/sv",
}

prebuilt_etc {
    name: "cube.mtl",
    src: "test_data/cube.mtl",
    sub_dir: "automotive/sv",
}
