//
// 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: false,
    defaults: ["NeuralNetworksShimArmnnDriverAidl_server_defaults"],
    init_rc: ["./config/android.hardware.neuralnetworks-shim-service-armnn.rc"],
    vintf_fragments: ["./config/android.hardware.neuralnetworks-shim-service-armnn.xml"],
}
