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