1// Copyright (C) 2022 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15// 16 17package { 18 default_applicable_licenses: ["Android-Apache-2.0"], 19} 20 21cc_defaults { 22 name: "evsmanagerd_defaults", 23 defaults: ["android.hardware.graphics.common-ndk_static"], 24 shared_libs: [ 25 "android.hardware.automotive.evs@1.0", 26 "android.hardware.automotive.evs@1.1", 27 "libbase", 28 "libbinder_ndk", 29 "libcamera_metadata", 30 "libhardware", 31 "libhidlbase", 32 "liblog", 33 "libprocessgroup", 34 "libstatslog_evsmanagerd", 35 "libutils", 36 ], 37 static_libs: [ 38 "android.hardware.automotive.evs-V2-ndk", 39 "android.hardware.common-V2-ndk", 40 "libaidlcommonsupport", 41 "libc++fs", 42 "libcutils", 43 ], 44 header_libs: [ 45 "libarect_headers", 46 "libui_headers", 47 ], 48 cflags: [ 49 "-DGL_GLEXT_PROTOTYPES", 50 "-DEGL_EGLEXT_PROTOTYPES", 51 "-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS", 52 "-Wall", 53 "-Werror", 54 "-Wunused", 55 "-Wunreachable-code", 56 "-Wthread-safety", 57 ], 58 export_include_dirs: [ 59 "include", 60 ], 61 local_include_dirs: [ 62 "include", 63 "stats/include", 64 "wrappers/include", 65 ], 66 product_variables: { 67 debuggable: { 68 cflags: [ 69 "-DEVS_DEBUG", 70 ] 71 }, 72 }, 73} 74 75filegroup { 76 name: "evsmanagerd_sources", 77 srcs: [ 78 "wrappers/src/HidlCameraStream.cpp", 79 "wrappers/src/AidlDisplay.cpp", 80 "wrappers/src/AidlCamera.cpp", 81 "wrappers/src/HidlEnumerator.cpp", 82 "wrappers/src/AidlCameraStream.cpp", 83 "wrappers/src/AidlEnumerator.cpp", 84 "wrappers/src/HidlDisplay.cpp", 85 "wrappers/src/HidlCamera.cpp", 86 "stats/src/CameraUsageStats.cpp", 87 "stats/src/StatsCollector.cpp", 88 "stats/src/LooperWrapper.cpp", 89 "utils/src/Utils.cpp", 90 "src/HalDisplay.cpp", 91 "src/VirtualCamera.cpp", 92 "src/Enumerator.cpp", 93 "src/HalCamera.cpp", 94 ], 95} 96 97cc_library_static { 98 name : "libevsmanagerd", 99 defaults : ["evsmanagerd_defaults"], 100 srcs : [":evsmanagerd_sources"], 101 export_include_dirs : ["."], 102} 103 104cc_binary { 105 name: "evsmanagerd", 106 defaults: ["evsmanagerd_defaults"], 107 static_libs: ["libevsmanagerd"], 108 srcs: ["src/service.cpp"], 109 init_rc: ["evsmanagerd.rc"], 110 vintf_fragments: ["manifest_evsmanagerd.xml"], 111} 112 113cc_fuzz { 114 name: "evs_enumerator_fuzzer", 115 defaults: [ 116 "evsmanagerd_defaults", 117 "service_fuzzer_defaults", 118 ], 119 static_libs: [ 120 "liblog", 121 ], 122 srcs: [ 123 ":evsmanagerd_sources", 124 "src/EnumeratorFuzzer.cpp", 125 ], 126 fuzz_config: { 127 cc: [ 128 "keithmok@google.com", 129 ], 130 }, 131} 132 133cc_test { 134 name: "evsmanagerd_test", 135 defaults: ["evsmanagerd_defaults"], 136 test_suites: [ 137 "general-tests", 138 "automotive-tests", 139 ], 140 srcs: [ 141 ":evsmanagerd_sources", 142 "tests/**/*.cpp" 143 ], 144 local_include_dirs: ["tests/include"], 145 shared_libs: [ 146 "libcamera_client", 147 "libnativewindow", 148 "libui", 149 ], 150 static_libs: [ 151 "libgmock", 152 "libgtest", 153 "libevsmanagerd", 154 ], 155} 156 157cc_test_library { 158 name: "libmockevshal", 159 defaults: ["android.hardware.graphics.common-ndk_static"], 160 local_include_dirs: [ 161 "include", 162 "tests/include" 163 ], 164 export_include_dirs: ["tests/include"], 165 srcs: [ 166 "tests/src/MockEvsHal.cpp", 167 "tests/src/MockHidlEvsHal.cpp", 168 "tests/src/MockHidlEvsHal_1_0.cpp", 169 ], 170 shared_libs: [ 171 "android.hardware.automotive.evs@1.0", 172 "android.hardware.automotive.evs@1.1", 173 "libbase", 174 "libbinder_ndk", 175 "libcamera_client", 176 "libcamera_metadata", 177 "libcutils", 178 "libhidlbase", 179 "libnativewindow", 180 "libui", 181 "libutils", 182 ], 183 static_libs: [ 184 "android.hardware.automotive.evs-V2-ndk", 185 "android.hardware.common-V2-ndk", 186 "libaidlcommonsupport", 187 "libgmock", 188 "libgtest", 189 ], 190 cflags: ["-DLOG_TAG=\"MockEVS\""], 191} 192 193cc_library { 194 name: "libstatslog_evsmanagerd", 195 generated_sources: ["statslog_evsmanagerd.cpp"], 196 generated_headers: ["statslog_evsmanagerd.h"], 197 export_generated_headers: ["statslog_evsmanagerd.h"], 198 min_sdk_version: "30", 199 shared_libs: [ 200 "libbinder", 201 "libstatsbootstrap", 202 "libutils", 203 "android.os.statsbootstrap_aidl-cpp", 204 ], 205} 206 207genrule { 208 name: "statslog_evsmanagerd.h", 209 tools: ["stats-log-api-gen"], 210 cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_evsmanagerd.h --module evs" + 211 " --namespace aidl,android,automotive,evs,stats --bootstrap", 212 out: [ 213 "statslog_evsmanagerd.h", 214 ], 215} 216 217genrule { 218 name: "statslog_evsmanagerd.cpp", 219 tools: ["stats-log-api-gen"], 220 cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_evsmanagerd.cpp --module evs" + 221 " --namespace aidl,android,automotive,evs,stats --importHeader statslog_evsmanagerd.h" + 222 " --bootstrap", 223 out: [ 224 "statslog_evsmanagerd.cpp", 225 ], 226} 227