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