xref: /aosp_15_r20/external/armnn/shim/Android.bp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
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