//
// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//


////////////////////////////////////////////
//                                        //
//           shim service                 //
//                                        //
////////////////////////////////////////////

cc_prebuilt_library_shared {
    name: "libarmnn_support_library",
    check_elf_files: false,
    shared_libs: [
        "libbase",
        "libcutils",
        "liblog",
        "libnativewindow",
    ],
    proprietary: true,
    vendor: true,
    // libnativewindow versioning trips this check. b/181227567 for fixing
    allow_undefined_symbols: true,
    target: {
        android_x86_64: {
            srcs: ["./sl/build/libarmnn_support_library.so"],
        },
        android_x86: {
            srcs: ["./sl/build/libarmnn_support_library.so"],
        },
        android_arm64: {
            srcs: ["./sl/build/libarmnn_support_library.so"],
        },
        android_arm: {
            srcs: ["./sl/build/libarmnn_support_library.so"],
        },
    },
    apex_available: ["//apex_available:vendor"],
}

cc_defaults {
    name: "NeuralNetworksShimArmnnDriverAidl_defaults",
    defaults: ["neuralnetworks_defaults"],
    header_libs: [
        "libneuralnetworks_headers",
    ],
    cflags: [
        "-DNN_COMPATIBILITY_LIBRARY_BUILD",
    ],
    static_libs: [
        "android.hardware.common-V2-ndk_platform",
        "android.hardware.graphics.common-V2-ndk_platform",
        "android.hardware.neuralnetworks-V1-ndk_platform",
        "libaidlcommonsupport",
        "libarect",
        "libcutils",
        "libneuralnetworks_shim_static",
        "neuralnetworks_supportlibrary_loader",
        "neuralnetworks_types",
        "libneuralnetworks_common",
        "neuralnetworks_utils_hal_aidl",
        "neuralnetworks_utils_hal_common",
    ],
    shared_libs: [
        "android.hidl.allocator@1.0",
        "android.hidl.memory@1.0",
        "libbase",
        "libhidltransport", 
        "libbinder_ndk",
        "libhidlbase",
        "libhidlmemory",
        "liblog",
        "libnativewindow",
        "libutils",
        "libarmnn_support_library",
    ],

}

cc_defaults {
    name: "NeuralNetworksShimArmnnDriverAidl_server_defaults",
    defaults: ["NeuralNetworksShimArmnnDriverAidl_defaults"],
    relative_install_path: "hw",
    proprietary: true,
}


cc_binary {
    name: "android.hardware.neuralnetworks-shim-service-armnn",
    srcs: ["./shimservice.cpp"],
    enabled: true,
    defaults: ["NeuralNetworksShimArmnnDriverAidl_server_defaults"],
    init_rc: ["./config/android.hardware.neuralnetworks-shim-service-armnn.rc"],
    vintf_fragments: ["./config/android.hardware.neuralnetworks-shim-service-armnn.xml"],
}
