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

////////////////////////////////////////////
//                                        //
//      libarmnn_support_library          //
//                                        //
////////////////////////////////////////////

cc_library_shared {
    name: "libarmnn_support_library",
	enabled : false,
    arch: {
        arm: {
            enabled : true,
        },
        arm64: {
            enabled : true,
        },
    },
    defaults: ["neuralnetworks_cl_defaults"],
    include_dirs: [
        "external/armnn/include",
        "external/armnn/third-party",
        "system/logging/liblog/include",
    ],
    srcs: [
        "sl/support_library_service.cpp",
        "sl/canonical/*.cpp",
    ],
    shared_libs: [
        "liblog",
        "libnativewindow",
        "libcrypto",
    ],
    openmp: true,
    cflags: [
        "-DNN_COMPATIBILITY_LIBRARY_BUILD",
        "-fexceptions",
        "-fPIC",
        "-Wall",
        "-fexceptions",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wno-unused-private-field",
        "-Wno-unused-variable",
        "-Wno-attributes",
        "-Wno-format-security",
        "-Wno-extern-c-compat",
        "-Wno-invalid-partial-specialization",
        "-Wno-unneeded-internal-declaration",
        "-Wno-unused-function",
        "-DNN_DEBUGGABLE",
    ],
    // Change the soname, this library will be added as cc_prebuilt_library_shared
    // with different name to android.hardware.neuralnetworks-shim-service-armnn
    ldflags: [
        "-Wl,-soname,libarmnn_support_library_prebuilt.so",
    ],
    static_libs: [
        "libbase_ndk",
        "libneuralnetworks_common_cl_cpu",
        "libtflite_static",
        "neuralnetworks_canonical_sample_driver_cl",
        "neuralnetworks_types_cl",
    ],
    whole_static_libs: [
        "libneuralnetworks_cl",
        "libarmnn",
    ],
}

////////////////////////////////////////////
//                                        //
//    libarmnn_support_library_prebuilt   //
//                                        //
////////////////////////////////////////////

cc_prebuilt_library_shared {
    name: "libarmnn_support_library_prebuilt",
    check_elf_files: false,
    host_supported: false,
    shared_libs: [
        "libbase",
        "libcutils",
        "liblog",
        "libnativewindow",
    ],
    proprietary: true,
    vendor: true,
    apex_available: ["//apex_available:platform"],
    allow_undefined_symbols: true,
    target: {
        android_x86_64: {
            enabled: false,
        },
        android_x86: {
            enabled: false,
        },
        android_riscv64: {
            enabled: false,
        },
        android_arm64: {
            srcs: ["sl/build/android_arm64/libarmnn_support_library_prebuilt.so"],
        },
        android_arm: {
            srcs: ["sl/build/android_arm/libarmnn_support_library_prebuilt.so"],
        },
    },
}

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

cc_defaults {
    name: "NeuralNetworksShimArmnnDriverAidl_defaults",
	enabled : false,
    arch: {
        arm: {
            enabled : true,
        },
        arm64: {
            enabled : true,
        },
    },
    check_elf_files: false,
    host_supported: false,
    defaults: [
        "neuralnetworks_defaults",
        "neuralnetworks_use_latest_utils_hal_aidl",
    ],
    header_libs: [
        "libneuralnetworks_headers",
    ],
    cflags: [
        "-DNN_COMPATIBILITY_LIBRARY_BUILD",
    ],
    ldflags: [
        // libarmnn_support_library has undefined symbols that
        // cause linker failures with --no-allow-shlib-undefined, the default
        // when linking executables. See b/181227567
        "-Wl,--allow-shlib-undefined",
    ],
    static_libs: [
        "libaidlcommonsupport",
        "libarect",
        "libcutils",
        "libneuralnetworks_common",
        "libneuralnetworks_shim_static",
        "neuralnetworks_supportlibrary_loader",
        "neuralnetworks_utils_hal_common",
    ],
    shared_libs: [
        "libbase",
        "libbinder_ndk",
        "libhidlbase",
        "libhidlmemory",
        "liblog",
        "libnativewindow",
        "libutils",
        "libarmnn_support_library_prebuilt",
    ],
    apex_available: ["//apex_available:platform"],
}

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

vintf_fragment {
    name: "android.hardware.neuralnetworks-shim-service-armnn.xml",
    src: "config/android.hardware.neuralnetworks-shim-service-armnn.xml",
    proprietary: true,
}

cc_binary {
    name: "android.hardware.neuralnetworks-shim-service-armnn",
    srcs: ["shimservice.cpp"],
    defaults: ["NeuralNetworksShimArmnnDriverAidl_server_defaults"],
    stl: "libc++_static",
    init_rc: ["config/android.hardware.neuralnetworks-shim-service-armnn.rc"],
    vintf_fragment_modules: ["android.hardware.neuralnetworks-shim-service-armnn.xml"],
}
