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_team: "trendy_team_automotive", 19 default_applicable_licenses: ["Android-Apache-2.0"], 20} 21 22cc_defaults { 23 name: "evsmanagerd_defaults", 24 defaults: ["android.hardware.graphics.common-ndk_static"], 25 shared_libs: [ 26 "[email protected]", 27 "[email protected]", 28 "libbase", 29 "libbinder_ndk", 30 "libcamera_metadata", 31 "libhardware", 32 "libhidlbase", 33 "liblog", 34 "libprocessgroup", 35 "libstatslog_evsmanagerd", 36 "libutils", 37 ], 38 static_libs: [ 39 "android.hardware.automotive.evs-V2-ndk", 40 "android.hardware.common-V2-ndk", 41 "libaidlcommonsupport", 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 ".", 60 "./include", 61 "./stats/include", 62 "./wrappers/include", 63 ], 64 product_variables: { 65 debuggable: { 66 cflags: [ 67 "-DEVS_DEBUG", 68 ], 69 }, 70 }, 71} 72 73filegroup { 74 name: "evsmanagerd_sources", 75 srcs: [ 76 "wrappers/src/HidlCameraStream.cpp", 77 "wrappers/src/AidlDisplay.cpp", 78 "wrappers/src/AidlCamera.cpp", 79 "wrappers/src/HidlEnumerator.cpp", 80 "wrappers/src/AidlCameraStream.cpp", 81 "wrappers/src/AidlEnumerator.cpp", 82 "wrappers/src/HidlDisplay.cpp", 83 "wrappers/src/HidlCamera.cpp", 84 "stats/src/CameraUsageStats.cpp", 85 "stats/src/StatsCollector.cpp", 86 "stats/src/LooperWrapper.cpp", 87 "utils/src/Utils.cpp", 88 "src/HalDisplay.cpp", 89 "src/VirtualCamera.cpp", 90 "src/Enumerator.cpp", 91 "src/HalCamera.cpp", 92 ], 93} 94 95cc_library_static { 96 name: "libevsmanagerd_static", 97 defaults: ["evsmanagerd_defaults"], 98 srcs: [":evsmanagerd_sources"], 99 export_include_dirs: [ 100 "./include", 101 "./stats/include", 102 "./wrappers/include", 103 ], 104} 105 106vintf_fragment { 107 name: "manifest_evsmanagerd.xml", 108 src: "manifest_evsmanagerd.xml", 109} 110 111cc_binary { 112 name: "evsmanagerd", 113 defaults: ["evsmanagerd_defaults"], 114 static_libs: ["libevsmanagerd_static"], 115 srcs: ["src/service.cpp"], 116 init_rc: ["evsmanagerd.rc"], 117 vintf_fragment_modules: ["manifest_evsmanagerd.xml"], 118} 119 120cc_test { 121 name: "evsmanagerd_test", 122 defaults: ["evsmanagerd_defaults"], 123 test_suites: [ 124 "general-tests", 125 "automotive-tests", 126 ], 127 srcs: [ 128 ":evsmanagerd_sources", 129 "tests/unit/**/*.cpp", 130 ], 131 local_include_dirs: ["tests/unit/include"], 132 shared_libs: [ 133 "libcamera_client", 134 "libnativewindow", 135 "libui", 136 ], 137 static_libs: [ 138 "libgmock", 139 "libgtest", 140 "libevsmanagerd_static", 141 ], 142} 143 144cc_test_library { 145 name: "libmockevshal", 146 defaults: ["android.hardware.graphics.common-ndk_static"], 147 local_include_dirs: [ 148 "include", 149 "tests/unit/include", 150 ], 151 export_include_dirs: ["tests/unit/include"], 152 srcs: [ 153 "tests/unit/src/MockEvsHal.cpp", 154 "tests/unit/src/MockHidlEvsHal.cpp", 155 "tests/unit/src/MockHidlEvsHal_1_0.cpp", 156 ], 157 shared_libs: [ 158 "[email protected]", 159 "[email protected]", 160 "libbase", 161 "libbinder_ndk", 162 "libcamera_client", 163 "libcamera_metadata", 164 "libcutils", 165 "libhidlbase", 166 "libnativewindow", 167 "libui", 168 "libutils", 169 ], 170 static_libs: [ 171 "android.hardware.automotive.evs-V2-ndk", 172 "android.hardware.common-V2-ndk", 173 "libaidlcommonsupport", 174 "libgmock", 175 "libgtest", 176 ], 177 cflags: ["-DLOG_TAG=\"MockEVS\""], 178} 179 180cc_library_headers { 181 name: "libmockevshal_headers", 182 export_include_dirs: ["tests/unit/include"], 183} 184 185cc_library { 186 name: "libstatslog_evsmanagerd", 187 generated_sources: ["statslog_evsmanagerd.cpp"], 188 generated_headers: ["statslog_evsmanagerd.h"], 189 export_generated_headers: ["statslog_evsmanagerd.h"], 190 min_sdk_version: "30", 191 shared_libs: [ 192 "libbinder", 193 "libstatsbootstrap", 194 "libutils", 195 "android.os.statsbootstrap_aidl-cpp", 196 ], 197} 198 199genrule { 200 name: "statslog_evsmanagerd.h", 201 tools: ["stats-log-api-gen"], 202 cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_evsmanagerd.h --module evs" + 203 " --namespace aidl,android,automotive,evs,stats --bootstrap", 204 out: [ 205 "statslog_evsmanagerd.h", 206 ], 207} 208 209genrule { 210 name: "statslog_evsmanagerd.cpp", 211 tools: ["stats-log-api-gen"], 212 cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_evsmanagerd.cpp --module evs" + 213 " --namespace aidl,android,automotive,evs,stats --importHeader statslog_evsmanagerd.h" + 214 " --bootstrap", 215 out: [ 216 "statslog_evsmanagerd.cpp", 217 ], 218} 219