1// 2// Copyright © 2022-2023 Arm Ltd and Contributors. All rights reserved. 3// SPDX-License-Identifier: MIT 4// 5 6//////////////////////////////////////////// 7// // 8// libarmnn_support_library // 9// // 10//////////////////////////////////////////// 11 12cc_library_shared { 13 name: "libarmnn_support_library", 14 enabled : false, 15 arch: { 16 arm: { 17 enabled : true, 18 }, 19 arm64: { 20 enabled : true, 21 }, 22 }, 23 defaults: ["neuralnetworks_cl_defaults"], 24 include_dirs: [ 25 "external/armnn/include", 26 "external/armnn/third-party", 27 "system/logging/liblog/include", 28 ], 29 srcs: [ 30 "sl/support_library_service.cpp", 31 "sl/canonical/*.cpp", 32 ], 33 shared_libs: [ 34 "liblog", 35 "libnativewindow", 36 "libcrypto", 37 ], 38 openmp: true, 39 cflags: [ 40 "-DNN_COMPATIBILITY_LIBRARY_BUILD", 41 "-fexceptions", 42 "-fPIC", 43 "-Wall", 44 "-fexceptions", 45 "-Werror", 46 "-Wno-unused-parameter", 47 "-Wno-unused-private-field", 48 "-Wno-unused-variable", 49 "-Wno-attributes", 50 "-Wno-format-security", 51 "-Wno-extern-c-compat", 52 "-Wno-invalid-partial-specialization", 53 "-Wno-unneeded-internal-declaration", 54 "-Wno-unused-function", 55 "-DNN_DEBUGGABLE", 56 ], 57 // Change the soname, this library will be added as cc_prebuilt_library_shared 58 // with different name to android.hardware.neuralnetworks-shim-service-armnn 59 ldflags: [ 60 "-Wl,-soname,libarmnn_support_library_prebuilt.so", 61 ], 62 static_libs: [ 63 "libbase_ndk", 64 "libneuralnetworks_common_cl_cpu", 65 "libtflite_static", 66 "neuralnetworks_canonical_sample_driver_cl", 67 "neuralnetworks_types_cl", 68 ], 69 whole_static_libs: [ 70 "libneuralnetworks_cl", 71 "libarmnn", 72 ], 73} 74 75//////////////////////////////////////////// 76// // 77// libarmnn_support_library_prebuilt // 78// // 79//////////////////////////////////////////// 80 81cc_prebuilt_library_shared { 82 name: "libarmnn_support_library_prebuilt", 83 check_elf_files: false, 84 host_supported: false, 85 shared_libs: [ 86 "libbase", 87 "libcutils", 88 "liblog", 89 "libnativewindow", 90 ], 91 proprietary: true, 92 vendor: true, 93 apex_available: ["//apex_available:vendor", "//apex_available:platform"], 94 allow_undefined_symbols: true, 95 target: { 96 android_x86_64: { 97 enabled: false, 98 }, 99 android_x86: { 100 enabled: false, 101 }, 102 android_riscv64: { 103 enabled: false, 104 }, 105 android_arm64: { 106 srcs: ["sl/build/android_arm64/libarmnn_support_library_prebuilt.so"], 107 }, 108 android_arm: { 109 srcs: ["sl/build/android_arm/libarmnn_support_library_prebuilt.so"], 110 }, 111 }, 112} 113 114//////////////////////////////////////////// 115// // 116// shim service // 117// // 118//////////////////////////////////////////// 119 120cc_defaults { 121 name: "NeuralNetworksShimArmnnDriverAidl_defaults", 122 enabled : false, 123 arch: { 124 arm: { 125 enabled : true, 126 }, 127 arm64: { 128 enabled : true, 129 }, 130 }, 131 check_elf_files: false, 132 host_supported: false, 133 defaults: [ 134 "neuralnetworks_defaults", 135 "neuralnetworks_use_latest_utils_hal_aidl", 136 ], 137 header_libs: [ 138 "libneuralnetworks_headers", 139 ], 140 cflags: [ 141 "-DNN_COMPATIBILITY_LIBRARY_BUILD", 142 ], 143 ldflags: [ 144 // libarmnn_support_library has undefined symbols that 145 // cause linker failures with --no-allow-shlib-undefined, the default 146 // when linking executables. See b/181227567 147 "-Wl,--allow-shlib-undefined", 148 ], 149 static_libs: [ 150 "libaidlcommonsupport", 151 "libarect", 152 "libcutils", 153 "libneuralnetworks_common", 154 "libneuralnetworks_shim_static", 155 "neuralnetworks_supportlibrary_loader", 156 "neuralnetworks_utils_hal_common", 157 ], 158 shared_libs: [ 159 "libbase", 160 "libbinder_ndk", 161 "libhidlbase", 162 "libhidlmemory", 163 "liblog", 164 "libnativewindow", 165 "libutils", 166 "libarmnn_support_library_prebuilt", 167 ], 168 apex_available: ["//apex_available:vendor", "//apex_available:platform"], 169} 170 171cc_defaults { 172 name: "NeuralNetworksShimArmnnDriverAidl_server_defaults", 173 defaults: ["NeuralNetworksShimArmnnDriverAidl_defaults"], 174 relative_install_path: "hw", 175 proprietary: true, 176} 177 178vintf_fragment { 179 name: "android.hardware.neuralnetworks-shim-service-armnn.xml", 180 src: "config/android.hardware.neuralnetworks-shim-service-armnn.xml", 181 proprietary: true, 182} 183 184cc_binary { 185 name: "android.hardware.neuralnetworks-shim-service-armnn", 186 srcs: ["shimservice.cpp"], 187 defaults: ["NeuralNetworksShimArmnnDriverAidl_server_defaults"], 188 stl: "libc++_static", 189 init_rc: ["config/android.hardware.neuralnetworks-shim-service-armnn.rc"], 190 vintf_fragment_modules: ["android.hardware.neuralnetworks-shim-service-armnn.xml"], 191} 192