1 2 3package { 4 default_applicable_licenses: [ 5 "frameworks_av_services_audioflinger_license", 6 ], 7} 8 9// Added automatically by a large-scale-change 10// See: http://go/android-license-faq 11license { 12 name: "frameworks_av_services_audioflinger_license", 13 visibility: [":__subpackages__"], 14 license_kinds: [ 15 "SPDX-license-identifier-Apache-2.0", 16 ], 17 license_text: [ 18 "NOTICE", 19 ], 20} 21 22tidy_errors = [ 23 // https://clang.llvm.org/extra/clang-tidy/checks/list.html 24 // For many categories, the checks are too many to specify individually. 25 // Feel free to disable as needed - as warnings are generally ignored, 26 // we treat warnings as errors. 27 "android-*", 28 "bugprone-*", 29 "cert-*", 30 "clang-analyzer-security*", 31 "google-*", 32 "misc-*", 33 //"modernize-*", // explicitly list the modernize as they can be subjective. 34 "modernize-avoid-bind", 35 //"modernize-avoid-c-arrays", // std::array<> can be verbose 36 "modernize-concat-nested-namespaces", 37 //"modernize-deprecated-headers", // C headers still ok even if there is C++ equivalent. 38 "modernize-deprecated-ios-base-aliases", 39 "modernize-loop-convert", 40 "modernize-make-shared", 41 "modernize-make-unique", 42 // "modernize-pass-by-value", 43 "modernize-raw-string-literal", 44 "modernize-redundant-void-arg", 45 "modernize-replace-auto-ptr", 46 "modernize-replace-random-shuffle", 47 "modernize-return-braced-init-list", 48 "modernize-shrink-to-fit", 49 "modernize-unary-static-assert", 50 // "modernize-use-auto", // found in MediaMetricsService.h, debatable - auto can obscure type 51 "modernize-use-bool-literals", 52 "modernize-use-default-member-init", 53 "modernize-use-emplace", 54 "modernize-use-equals-default", 55 "modernize-use-equals-delete", 56 // "modernize-use-nodiscard", 57 "modernize-use-noexcept", 58 "modernize-use-nullptr", 59 "modernize-use-override", 60 //"modernize-use-trailing-return-type", // not necessarily more readable 61 "modernize-use-transparent-functors", 62 "modernize-use-uncaught-exceptions", 63 "modernize-use-using", 64 "performance-*", 65 66 // Remove some pedantic stylistic requirements. 67 "-google-readability-casting", // C++ casts not always necessary and may be verbose 68 "-google-readability-todo", // do not require TODO(info) 69 70 "-bugprone-unhandled-self-assignment", 71 "-bugprone-suspicious-string-compare", 72 "-cert-oop54-cpp", // found in TransactionLog.h 73 "-bugprone-narrowing-conversions", // b/182410845 74 75 // TODO(b/275642749) Reenable these warnings 76 "-bugprone-assignment-in-if-condition", 77 "-bugprone-forward-declaration-namespace", 78 "-bugprone-parent-virtual-call", 79 "-cert-dcl59-cpp", 80 "-cert-err34-c", 81 "-google-build-namespaces", 82 "-google-build-using-namespace", 83 "-google-default-arguments", 84 "-google-runtime-int", 85 "-misc-const-correctness", 86 "-misc-non-private-member-variables-in-classes", 87 "-modernize-concat-nested-namespaces", 88 "-modernize-loop-convert", 89 "-modernize-use-default-member-init", 90 "-modernize-use-equals-default", 91 "-modernize-use-nullptr", 92 "-modernize-use-override", 93 "-modernize-use-using", 94 "-performance-no-int-to-ptr", 95] 96 97// Eventually use common tidy defaults 98cc_defaults { 99 name: "audioflinger_flags_defaults", 100 // https://clang.llvm.org/docs/UsersManual.html#command-line-options 101 // https://clang.llvm.org/docs/DiagnosticsReference.html 102 cflags: [ 103 "-Wall", 104 "-Wdeprecated", 105 "-Werror", 106 "-Werror=implicit-fallthrough", 107 "-Werror=sometimes-uninitialized", 108 "-Werror=conditional-uninitialized", 109 "-Wextra", 110 111 // suppress some warning chatter. 112 "-Wno-deprecated-copy-with-dtor", 113 "-Wno-deprecated-copy-with-user-provided-dtor", 114 115 "-Wredundant-decls", 116 "-Wshadow", 117 "-Wstrict-aliasing", 118 "-fstrict-aliasing", 119 "-Wthread-safety", 120 //"-Wthread-safety-negative", // experimental - looks broken in R. 121 "-Wunreachable-code", 122 "-Wunreachable-code-break", 123 "-Wunreachable-code-return", 124 "-Wunused", 125 "-Wused-but-marked-unused", 126 "-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS", 127 ], 128 // https://clang.llvm.org/extra/clang-tidy/ 129 tidy: true, 130 tidy_checks: tidy_errors, 131 tidy_checks_as_errors: tidy_errors, 132 tidy_flags: [ 133 "-format-style=file", 134 ], 135} 136 137cc_library_shared { 138 name: "libaudioflinger", 139 140 defaults: [ 141 "latest_android_media_audio_common_types_cpp_shared", 142 "latest_android_hardware_audio_core_sounddose_ndk_shared", 143 "audioflinger_flags_defaults", 144 ], 145 146 srcs: [ 147 "AudioFlinger.cpp", 148 "AudioHwDevice.cpp", 149 "AudioStreamOut.cpp", 150 "AudioWatchdog.cpp", 151 "BufLog.cpp", 152 "DeviceEffectManager.cpp", 153 "Effects.cpp", 154 "FastCapture.cpp", 155 "FastCaptureDumpState.cpp", 156 "FastCaptureState.cpp", 157 "FastMixer.cpp", 158 "FastMixerDumpState.cpp", 159 "FastMixerState.cpp", 160 "FastThread.cpp", 161 "FastThreadDumpState.cpp", 162 "FastThreadState.cpp", 163 "MelReporter.cpp", 164 "NBAIO_Tee.cpp", 165 "PatchCommandThread.cpp", 166 "PatchPanel.cpp", 167 "PropertyUtils.cpp", 168 "SpdifStreamOut.cpp", 169 "StateQueue.cpp", 170 "Threads.cpp", 171 "Tracks.cpp", 172 "TypedLogger.cpp", 173 ], 174 175 include_dirs: [ 176 "frameworks/av/services/audiopolicy", 177 "frameworks/av/services/medialog", 178 ], 179 180 shared_libs: [ 181 "audioflinger-aidl-cpp", 182 "audioclient-types-aidl-cpp", 183 "av-types-aidl-cpp", 184 "effect-aidl-cpp", 185 "libaudioclient_aidl_conversion", 186 "libactivitymanager_aidl", 187 "libaudioflinger_timing", 188 "libaudiofoundation", 189 "libaudiohal", 190 "libaudioprocessing", 191 "libaudiospdif", 192 "libaudioutils", 193 "libcutils", 194 "libutils", 195 "liblog", 196 "libbinder", 197 "libbinder_ndk", 198 "libaudioclient", 199 "libaudiomanager", 200 "libmedialogservice", 201 "libmediametrics", 202 "libmediautils", 203 "libnbaio", 204 "libnblog", 205 "libpermission", 206 "libpowermanager", 207 "libmemunreachable", 208 "libmedia_helper", 209 "libshmemcompat", 210 "libsounddose", 211 "libvibrator", 212 "packagemanager_aidl-cpp", 213 ], 214 215 static_libs: [ 216 "libcpustats", 217 "libsndfile", 218 "libpermission", 219 ], 220 221 header_libs: [ 222 "libaaudio_headers", 223 "libaudioclient_headers", 224 "libaudiohal_headers", 225 "libaudioutils_headers", 226 "libmedia_headers", 227 ], 228 229 export_shared_lib_headers: [ 230 "libpermission", 231 "android.hardware.audio.core.sounddose-V1-ndk", 232 ], 233 234 cflags: [ 235 "-DSTATE_QUEUE_INSTANTIATIONS=\"StateQueueInstantiations.cpp\"", 236 "-fvisibility=hidden", 237 "-Werror", 238 "-Wall", 239 ], 240 sanitize: { 241 integer_overflow: true, 242 }, 243 244} 245 246cc_library_headers { 247 name: "libaudioflinger_headers", 248 export_include_dirs: ["."], 249} 250