xref: /aosp_15_r20/hardware/interfaces/neuralnetworks/aidl/utils/Android.bp (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker//
2*4d7e907cSAndroid Build Coastguard Worker// Copyright (C) 2021 The Android Open Source Project
3*4d7e907cSAndroid Build Coastguard Worker//
4*4d7e907cSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*4d7e907cSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*4d7e907cSAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*4d7e907cSAndroid Build Coastguard Worker//
8*4d7e907cSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*4d7e907cSAndroid Build Coastguard Worker//
10*4d7e907cSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*4d7e907cSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*4d7e907cSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4d7e907cSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*4d7e907cSAndroid Build Coastguard Worker// limitations under the License.
15*4d7e907cSAndroid Build Coastguard Worker//
16*4d7e907cSAndroid Build Coastguard Worker
17*4d7e907cSAndroid Build Coastguard Workerpackage {
18*4d7e907cSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
19*4d7e907cSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
20*4d7e907cSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "hardware_interfaces_license"
21*4d7e907cSAndroid Build Coastguard Worker    // to get the below license kinds:
22*4d7e907cSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
23*4d7e907cSAndroid Build Coastguard Worker    default_applicable_licenses: ["hardware_interfaces_license"],
24*4d7e907cSAndroid Build Coastguard Worker}
25*4d7e907cSAndroid Build Coastguard Worker
26*4d7e907cSAndroid Build Coastguard Workercc_defaults {
27*4d7e907cSAndroid Build Coastguard Worker    name: "neuralnetworks_utils_hal_aidl_defaults",
28*4d7e907cSAndroid Build Coastguard Worker    defaults: [
29*4d7e907cSAndroid Build Coastguard Worker        "android.hardware.graphics.common-ndk_static",
30*4d7e907cSAndroid Build Coastguard Worker        "neuralnetworks_utils_defaults",
31*4d7e907cSAndroid Build Coastguard Worker    ],
32*4d7e907cSAndroid Build Coastguard Worker    srcs: [
33*4d7e907cSAndroid Build Coastguard Worker        // AIDL utils that a driver may depend on.
34*4d7e907cSAndroid Build Coastguard Worker        "src/BufferTracker.cpp",
35*4d7e907cSAndroid Build Coastguard Worker        "src/Conversions.cpp",
36*4d7e907cSAndroid Build Coastguard Worker        "src/HalUtils.cpp",
37*4d7e907cSAndroid Build Coastguard Worker        "src/Utils.cpp",
38*4d7e907cSAndroid Build Coastguard Worker        "src/ValidateHal.cpp",
39*4d7e907cSAndroid Build Coastguard Worker    ],
40*4d7e907cSAndroid Build Coastguard Worker    local_include_dirs: ["include/nnapi/hal/aidl/"],
41*4d7e907cSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
42*4d7e907cSAndroid Build Coastguard Worker    cflags: ["-Wthread-safety"],
43*4d7e907cSAndroid Build Coastguard Worker    static_libs: [
44*4d7e907cSAndroid Build Coastguard Worker        "libaidlcommonsupport",
45*4d7e907cSAndroid Build Coastguard Worker        "libarect",
46*4d7e907cSAndroid Build Coastguard Worker        "neuralnetworks_types",
47*4d7e907cSAndroid Build Coastguard Worker        "neuralnetworks_utils_hal_common",
48*4d7e907cSAndroid Build Coastguard Worker    ],
49*4d7e907cSAndroid Build Coastguard Worker    shared_libs: [
50*4d7e907cSAndroid Build Coastguard Worker        "libbinder_ndk",
51*4d7e907cSAndroid Build Coastguard Worker    ],
52*4d7e907cSAndroid Build Coastguard Worker    target: {
53*4d7e907cSAndroid Build Coastguard Worker        android: {
54*4d7e907cSAndroid Build Coastguard Worker            shared_libs: ["libnativewindow"],
55*4d7e907cSAndroid Build Coastguard Worker        },
56*4d7e907cSAndroid Build Coastguard Worker    },
57*4d7e907cSAndroid Build Coastguard Worker}
58*4d7e907cSAndroid Build Coastguard Worker
59*4d7e907cSAndroid Build Coastguard Worker// Deprecated. Remove once all modules depending on this are migrated away.
60*4d7e907cSAndroid Build Coastguard Workercc_library_static {
61*4d7e907cSAndroid Build Coastguard Worker    name: "neuralnetworks_utils_hal_aidl_v1",
62*4d7e907cSAndroid Build Coastguard Worker    defaults: ["neuralnetworks_utils_hal_aidl_defaults"],
63*4d7e907cSAndroid Build Coastguard Worker    shared_libs: [
64*4d7e907cSAndroid Build Coastguard Worker        "android.hardware.neuralnetworks-V1-ndk",
65*4d7e907cSAndroid Build Coastguard Worker    ],
66*4d7e907cSAndroid Build Coastguard Worker}
67*4d7e907cSAndroid Build Coastguard Worker
68*4d7e907cSAndroid Build Coastguard Workercc_library_static {
69*4d7e907cSAndroid Build Coastguard Worker    name: "neuralnetworks_utils_hal_aidl",
70*4d7e907cSAndroid Build Coastguard Worker    defaults: ["neuralnetworks_utils_hal_aidl_defaults"],
71*4d7e907cSAndroid Build Coastguard Worker    srcs: [
72*4d7e907cSAndroid Build Coastguard Worker        // Additional AIDL utils for the runtime.
73*4d7e907cSAndroid Build Coastguard Worker        "src/Assertions.cpp",
74*4d7e907cSAndroid Build Coastguard Worker        "src/Buffer.cpp",
75*4d7e907cSAndroid Build Coastguard Worker        "src/Burst.cpp",
76*4d7e907cSAndroid Build Coastguard Worker        "src/Callbacks.cpp",
77*4d7e907cSAndroid Build Coastguard Worker        "src/Device.cpp",
78*4d7e907cSAndroid Build Coastguard Worker        "src/Execution.cpp",
79*4d7e907cSAndroid Build Coastguard Worker        "src/InvalidDevice.cpp",
80*4d7e907cSAndroid Build Coastguard Worker        "src/PreparedModel.cpp",
81*4d7e907cSAndroid Build Coastguard Worker        "src/ProtectCallback.cpp",
82*4d7e907cSAndroid Build Coastguard Worker        "src/Service.cpp",
83*4d7e907cSAndroid Build Coastguard Worker    ],
84*4d7e907cSAndroid Build Coastguard Worker    shared_libs: [
85*4d7e907cSAndroid Build Coastguard Worker        "android.hardware.neuralnetworks-V4-ndk",
86*4d7e907cSAndroid Build Coastguard Worker    ],
87*4d7e907cSAndroid Build Coastguard Worker    cflags: ["-DNN_AIDL_V4_OR_ABOVE"],
88*4d7e907cSAndroid Build Coastguard Worker}
89*4d7e907cSAndroid Build Coastguard Worker
90*4d7e907cSAndroid Build Coastguard Worker// A cc_defaults that includes the latest non-experimental AIDL utilities and other AIDL libraries
91*4d7e907cSAndroid Build Coastguard Worker// that are commonly used together. Modules that always depend on the latest non-experimental
92*4d7e907cSAndroid Build Coastguard Worker// AIDL features can include this cc_defaults to avoid managing dependency versions explicitly.
93*4d7e907cSAndroid Build Coastguard Workercc_defaults {
94*4d7e907cSAndroid Build Coastguard Worker    name: "neuralnetworks_use_latest_utils_hal_aidl",
95*4d7e907cSAndroid Build Coastguard Worker    defaults: ["android.hardware.graphics.common-ndk_static"],
96*4d7e907cSAndroid Build Coastguard Worker    static_libs: [
97*4d7e907cSAndroid Build Coastguard Worker        "android.hardware.common-V2-ndk",
98*4d7e907cSAndroid Build Coastguard Worker        "android.hardware.neuralnetworks-V4-ndk",
99*4d7e907cSAndroid Build Coastguard Worker        "neuralnetworks_utils_hal_aidl",
100*4d7e907cSAndroid Build Coastguard Worker    ],
101*4d7e907cSAndroid Build Coastguard Worker    cflags: ["-DNN_AIDL_V4_OR_ABOVE"],
102*4d7e907cSAndroid Build Coastguard Worker}
103*4d7e907cSAndroid Build Coastguard Worker
104*4d7e907cSAndroid Build Coastguard Workercc_test {
105*4d7e907cSAndroid Build Coastguard Worker    name: "neuralnetworks_utils_hal_aidl_test",
106*4d7e907cSAndroid Build Coastguard Worker    defaults: [
107*4d7e907cSAndroid Build Coastguard Worker        "neuralnetworks_use_latest_utils_hal_aidl",
108*4d7e907cSAndroid Build Coastguard Worker        "neuralnetworks_utils_defaults",
109*4d7e907cSAndroid Build Coastguard Worker    ],
110*4d7e907cSAndroid Build Coastguard Worker    tidy_timeout_srcs: [
111*4d7e907cSAndroid Build Coastguard Worker        "test/DeviceTest.cpp",
112*4d7e907cSAndroid Build Coastguard Worker        "test/PreparedModelTest.cpp",
113*4d7e907cSAndroid Build Coastguard Worker    ],
114*4d7e907cSAndroid Build Coastguard Worker    srcs: [
115*4d7e907cSAndroid Build Coastguard Worker        "test/*.cpp",
116*4d7e907cSAndroid Build Coastguard Worker    ],
117*4d7e907cSAndroid Build Coastguard Worker    static_libs: [
118*4d7e907cSAndroid Build Coastguard Worker        "libaidlcommonsupport",
119*4d7e907cSAndroid Build Coastguard Worker        "libgmock",
120*4d7e907cSAndroid Build Coastguard Worker        "neuralnetworks_types",
121*4d7e907cSAndroid Build Coastguard Worker        "neuralnetworks_utils_hal_common",
122*4d7e907cSAndroid Build Coastguard Worker    ],
123*4d7e907cSAndroid Build Coastguard Worker    shared_libs: [
124*4d7e907cSAndroid Build Coastguard Worker        "libbase",
125*4d7e907cSAndroid Build Coastguard Worker        "libbinder_ndk",
126*4d7e907cSAndroid Build Coastguard Worker        "libcutils",
127*4d7e907cSAndroid Build Coastguard Worker    ],
128*4d7e907cSAndroid Build Coastguard Worker    target: {
129*4d7e907cSAndroid Build Coastguard Worker        android: {
130*4d7e907cSAndroid Build Coastguard Worker            shared_libs: ["libnativewindow"],
131*4d7e907cSAndroid Build Coastguard Worker        },
132*4d7e907cSAndroid Build Coastguard Worker    },
133*4d7e907cSAndroid Build Coastguard Worker    cflags: [
134*4d7e907cSAndroid Build Coastguard Worker        /* GMOCK defines functions for printing all MOCK_DEVICE arguments and
135*4d7e907cSAndroid Build Coastguard Worker         * MockDevice contains a string pointer which triggers a warning in the
136*4d7e907cSAndroid Build Coastguard Worker         * base logging library. */
137*4d7e907cSAndroid Build Coastguard Worker        "-Wno-user-defined-warnings",
138*4d7e907cSAndroid Build Coastguard Worker    ],
139*4d7e907cSAndroid Build Coastguard Worker    test_suites: ["general-tests"],
140*4d7e907cSAndroid Build Coastguard Worker}
141