1*ec779b8eSAndroid Build Coastguard Worker// Media Statistics service 2*ec779b8eSAndroid Build Coastguard Worker// 3*ec779b8eSAndroid Build Coastguard Worker 4*ec779b8eSAndroid Build Coastguard Workerpackage { 5*ec779b8eSAndroid Build Coastguard Worker // See: http://go/android-license-faq 6*ec779b8eSAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 7*ec779b8eSAndroid Build Coastguard Worker // all of the 'license_kinds' from "frameworks_av_license" 8*ec779b8eSAndroid Build Coastguard Worker // to get the below license kinds: 9*ec779b8eSAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 10*ec779b8eSAndroid Build Coastguard Worker default_applicable_licenses: ["frameworks_av_license"], 11*ec779b8eSAndroid Build Coastguard Worker} 12*ec779b8eSAndroid Build Coastguard Worker 13*ec779b8eSAndroid Build Coastguard Workertidy_errors = [ 14*ec779b8eSAndroid Build Coastguard Worker // https://clang.llvm.org/extra/clang-tidy/checks/list.html 15*ec779b8eSAndroid Build Coastguard Worker // For many categories, the checks are too many to specify individually. 16*ec779b8eSAndroid Build Coastguard Worker // Feel free to disable as needed - as warnings are generally ignored, 17*ec779b8eSAndroid Build Coastguard Worker // we treat warnings as errors. 18*ec779b8eSAndroid Build Coastguard Worker "android-*", 19*ec779b8eSAndroid Build Coastguard Worker "bugprone-*", 20*ec779b8eSAndroid Build Coastguard Worker "cert-*", 21*ec779b8eSAndroid Build Coastguard Worker "clang-analyzer-security*", 22*ec779b8eSAndroid Build Coastguard Worker "google-*", 23*ec779b8eSAndroid Build Coastguard Worker "misc-*", 24*ec779b8eSAndroid Build Coastguard Worker //"modernize-*", // explicitly list the modernize as they can be subjective. 25*ec779b8eSAndroid Build Coastguard Worker "modernize-avoid-bind", 26*ec779b8eSAndroid Build Coastguard Worker //"modernize-avoid-c-arrays", // std::array<> can be verbose 27*ec779b8eSAndroid Build Coastguard Worker "modernize-concat-nested-namespaces", 28*ec779b8eSAndroid Build Coastguard Worker //"modernize-deprecated-headers", // C headers still ok even if there is C++ equivalent. 29*ec779b8eSAndroid Build Coastguard Worker "modernize-deprecated-ios-base-aliases", 30*ec779b8eSAndroid Build Coastguard Worker "modernize-loop-convert", 31*ec779b8eSAndroid Build Coastguard Worker "modernize-make-shared", 32*ec779b8eSAndroid Build Coastguard Worker "modernize-make-unique", 33*ec779b8eSAndroid Build Coastguard Worker // "modernize-pass-by-value", // found in TimeMachine.h 34*ec779b8eSAndroid Build Coastguard Worker "modernize-raw-string-literal", 35*ec779b8eSAndroid Build Coastguard Worker "modernize-redundant-void-arg", 36*ec779b8eSAndroid Build Coastguard Worker "modernize-replace-auto-ptr", 37*ec779b8eSAndroid Build Coastguard Worker "modernize-replace-random-shuffle", 38*ec779b8eSAndroid Build Coastguard Worker "modernize-return-braced-init-list", 39*ec779b8eSAndroid Build Coastguard Worker "modernize-shrink-to-fit", 40*ec779b8eSAndroid Build Coastguard Worker "modernize-unary-static-assert", 41*ec779b8eSAndroid Build Coastguard Worker // "modernize-use-auto", // found in MediaMetricsService.h, debatable - auto can obscure type 42*ec779b8eSAndroid Build Coastguard Worker "modernize-use-bool-literals", 43*ec779b8eSAndroid Build Coastguard Worker "modernize-use-default-member-init", 44*ec779b8eSAndroid Build Coastguard Worker "modernize-use-emplace", 45*ec779b8eSAndroid Build Coastguard Worker "modernize-use-equals-default", 46*ec779b8eSAndroid Build Coastguard Worker "modernize-use-equals-delete", 47*ec779b8eSAndroid Build Coastguard Worker // "modernize-use-nodiscard", // found in TimeMachine.h 48*ec779b8eSAndroid Build Coastguard Worker "modernize-use-noexcept", 49*ec779b8eSAndroid Build Coastguard Worker "modernize-use-nullptr", 50*ec779b8eSAndroid Build Coastguard Worker "modernize-use-override", 51*ec779b8eSAndroid Build Coastguard Worker //"modernize-use-trailing-return-type", // not necessarily more readable 52*ec779b8eSAndroid Build Coastguard Worker "modernize-use-transparent-functors", 53*ec779b8eSAndroid Build Coastguard Worker "modernize-use-uncaught-exceptions", 54*ec779b8eSAndroid Build Coastguard Worker "modernize-use-using", 55*ec779b8eSAndroid Build Coastguard Worker "performance-*", 56*ec779b8eSAndroid Build Coastguard Worker 57*ec779b8eSAndroid Build Coastguard Worker // Remove some pedantic stylistic requirements. 58*ec779b8eSAndroid Build Coastguard Worker "-google-readability-casting", // C++ casts not always necessary and may be verbose 59*ec779b8eSAndroid Build Coastguard Worker "-google-readability-todo", // do not require TODO(info) 60*ec779b8eSAndroid Build Coastguard Worker 61*ec779b8eSAndroid Build Coastguard Worker "-bugprone-unhandled-self-assignment", // found in TimeMachine.h 62*ec779b8eSAndroid Build Coastguard Worker "-bugprone-suspicious-string-compare", // found in TimeMachine.h 63*ec779b8eSAndroid Build Coastguard Worker "-cert-oop54-cpp", // found in TransactionLog.h 64*ec779b8eSAndroid Build Coastguard Worker "-bugprone-narrowing-conversions", // b/182410845 65*ec779b8eSAndroid Build Coastguard Worker] 66*ec779b8eSAndroid Build Coastguard Worker 67*ec779b8eSAndroid Build Coastguard Workercc_defaults { 68*ec779b8eSAndroid Build Coastguard Worker name: "mediametrics_flags_defaults", 69*ec779b8eSAndroid Build Coastguard Worker // https://clang.llvm.org/docs/UsersManual.html#command-line-options 70*ec779b8eSAndroid Build Coastguard Worker // https://clang.llvm.org/docs/DiagnosticsReference.html 71*ec779b8eSAndroid Build Coastguard Worker cflags: [ 72*ec779b8eSAndroid Build Coastguard Worker "-Wall", 73*ec779b8eSAndroid Build Coastguard Worker "-Wdeprecated", 74*ec779b8eSAndroid Build Coastguard Worker "-Werror", 75*ec779b8eSAndroid Build Coastguard Worker "-Werror=implicit-fallthrough", 76*ec779b8eSAndroid Build Coastguard Worker "-Werror=sometimes-uninitialized", 77*ec779b8eSAndroid Build Coastguard Worker "-Werror=conditional-uninitialized", 78*ec779b8eSAndroid Build Coastguard Worker "-Wextra", 79*ec779b8eSAndroid Build Coastguard Worker "-Wredundant-decls", 80*ec779b8eSAndroid Build Coastguard Worker "-Wshadow", 81*ec779b8eSAndroid Build Coastguard Worker "-Wstrict-aliasing", 82*ec779b8eSAndroid Build Coastguard Worker "-fstrict-aliasing", 83*ec779b8eSAndroid Build Coastguard Worker "-Wthread-safety", 84*ec779b8eSAndroid Build Coastguard Worker //"-Wthread-safety-negative", // experimental - looks broken in R. 85*ec779b8eSAndroid Build Coastguard Worker "-Wunreachable-code", 86*ec779b8eSAndroid Build Coastguard Worker "-Wunreachable-code-break", 87*ec779b8eSAndroid Build Coastguard Worker "-Wunreachable-code-return", 88*ec779b8eSAndroid Build Coastguard Worker "-Wunused", 89*ec779b8eSAndroid Build Coastguard Worker "-Wused-but-marked-unused", 90*ec779b8eSAndroid Build Coastguard Worker ], 91*ec779b8eSAndroid Build Coastguard Worker // https://clang.llvm.org/extra/clang-tidy/ 92*ec779b8eSAndroid Build Coastguard Worker tidy: true, 93*ec779b8eSAndroid Build Coastguard Worker tidy_checks: tidy_errors, 94*ec779b8eSAndroid Build Coastguard Worker tidy_checks_as_errors: tidy_errors, 95*ec779b8eSAndroid Build Coastguard Worker tidy_flags: [ 96*ec779b8eSAndroid Build Coastguard Worker "-format-style=file", 97*ec779b8eSAndroid Build Coastguard Worker ], 98*ec779b8eSAndroid Build Coastguard Worker} 99*ec779b8eSAndroid Build Coastguard Worker 100*ec779b8eSAndroid Build Coastguard Workercc_binary { 101*ec779b8eSAndroid Build Coastguard Worker name: "mediametrics", 102*ec779b8eSAndroid Build Coastguard Worker defaults: [ 103*ec779b8eSAndroid Build Coastguard Worker "mediametrics_flags_defaults", 104*ec779b8eSAndroid Build Coastguard Worker ], 105*ec779b8eSAndroid Build Coastguard Worker 106*ec779b8eSAndroid Build Coastguard Worker srcs: [ 107*ec779b8eSAndroid Build Coastguard Worker "main_mediametrics.cpp", 108*ec779b8eSAndroid Build Coastguard Worker ], 109*ec779b8eSAndroid Build Coastguard Worker 110*ec779b8eSAndroid Build Coastguard Worker shared_libs: [ 111*ec779b8eSAndroid Build Coastguard Worker "libbinder", 112*ec779b8eSAndroid Build Coastguard Worker "liblog", 113*ec779b8eSAndroid Build Coastguard Worker "libmediametricsservice", 114*ec779b8eSAndroid Build Coastguard Worker "libmediautils", 115*ec779b8eSAndroid Build Coastguard Worker "libutils", 116*ec779b8eSAndroid Build Coastguard Worker "mediametricsservice-aidl-cpp", 117*ec779b8eSAndroid Build Coastguard Worker "packagemanager_aidl-cpp", 118*ec779b8eSAndroid Build Coastguard Worker ], 119*ec779b8eSAndroid Build Coastguard Worker header_libs: [ 120*ec779b8eSAndroid Build Coastguard Worker "libaudioutils_headers", 121*ec779b8eSAndroid Build Coastguard Worker "libmediametrics_headers", 122*ec779b8eSAndroid Build Coastguard Worker ], 123*ec779b8eSAndroid Build Coastguard Worker 124*ec779b8eSAndroid Build Coastguard Worker init_rc: [ 125*ec779b8eSAndroid Build Coastguard Worker "mediametrics.rc", 126*ec779b8eSAndroid Build Coastguard Worker ], 127*ec779b8eSAndroid Build Coastguard Worker} 128*ec779b8eSAndroid Build Coastguard Worker 129*ec779b8eSAndroid Build Coastguard Workercc_library { 130*ec779b8eSAndroid Build Coastguard Worker name: "libmediametricsservice", 131*ec779b8eSAndroid Build Coastguard Worker defaults: [ 132*ec779b8eSAndroid Build Coastguard Worker "mediametrics_flags_defaults", 133*ec779b8eSAndroid Build Coastguard Worker ], 134*ec779b8eSAndroid Build Coastguard Worker 135*ec779b8eSAndroid Build Coastguard Worker srcs: [ 136*ec779b8eSAndroid Build Coastguard Worker "AudioAnalytics.cpp", 137*ec779b8eSAndroid Build Coastguard Worker "AudioPowerUsage.cpp", 138*ec779b8eSAndroid Build Coastguard Worker "AudioTypes.cpp", 139*ec779b8eSAndroid Build Coastguard Worker "cleaner.cpp", 140*ec779b8eSAndroid Build Coastguard Worker "iface_statsd.cpp", 141*ec779b8eSAndroid Build Coastguard Worker "MediaDrmStatsdHelper.cpp", 142*ec779b8eSAndroid Build Coastguard Worker "MediaMetricsService.cpp", 143*ec779b8eSAndroid Build Coastguard Worker "statsd_audiopolicy.cpp", 144*ec779b8eSAndroid Build Coastguard Worker "statsd_audiorecord.cpp", 145*ec779b8eSAndroid Build Coastguard Worker "statsd_audiothread.cpp", 146*ec779b8eSAndroid Build Coastguard Worker "statsd_audiotrack.cpp", 147*ec779b8eSAndroid Build Coastguard Worker "statsd_codec.cpp", 148*ec779b8eSAndroid Build Coastguard Worker "statsd_drm.cpp", 149*ec779b8eSAndroid Build Coastguard Worker "statsd_extractor.cpp", 150*ec779b8eSAndroid Build Coastguard Worker "statsd_mediaparser.cpp", 151*ec779b8eSAndroid Build Coastguard Worker "statsd_nuplayer.cpp", 152*ec779b8eSAndroid Build Coastguard Worker "statsd_recorder.cpp", 153*ec779b8eSAndroid Build Coastguard Worker "StringUtils.cpp", 154*ec779b8eSAndroid Build Coastguard Worker "ValidateId.cpp", 155*ec779b8eSAndroid Build Coastguard Worker ], 156*ec779b8eSAndroid Build Coastguard Worker 157*ec779b8eSAndroid Build Coastguard Worker proto: { 158*ec779b8eSAndroid Build Coastguard Worker type: "lite", 159*ec779b8eSAndroid Build Coastguard Worker }, 160*ec779b8eSAndroid Build Coastguard Worker 161*ec779b8eSAndroid Build Coastguard Worker shared_libs: [ 162*ec779b8eSAndroid Build Coastguard Worker "libaudioutils", 163*ec779b8eSAndroid Build Coastguard Worker "libbase", // android logging 164*ec779b8eSAndroid Build Coastguard Worker "libbinder", 165*ec779b8eSAndroid Build Coastguard Worker "libcutils", 166*ec779b8eSAndroid Build Coastguard Worker "liblog", 167*ec779b8eSAndroid Build Coastguard Worker "libmedia_helper", 168*ec779b8eSAndroid Build Coastguard Worker "libmediametrics", 169*ec779b8eSAndroid Build Coastguard Worker "libmediautils", 170*ec779b8eSAndroid Build Coastguard Worker "libmemunreachable", 171*ec779b8eSAndroid Build Coastguard Worker "libprotobuf-cpp-lite", 172*ec779b8eSAndroid Build Coastguard Worker "libstagefright_foundation", 173*ec779b8eSAndroid Build Coastguard Worker "libstats_media_metrics", 174*ec779b8eSAndroid Build Coastguard Worker "libstatspull", 175*ec779b8eSAndroid Build Coastguard Worker "libstatssocket", 176*ec779b8eSAndroid Build Coastguard Worker "libutils", 177*ec779b8eSAndroid Build Coastguard Worker "mediametricsservice-aidl-cpp", 178*ec779b8eSAndroid Build Coastguard Worker "packagemanager_aidl-cpp", 179*ec779b8eSAndroid Build Coastguard Worker ], 180*ec779b8eSAndroid Build Coastguard Worker 181*ec779b8eSAndroid Build Coastguard Worker export_shared_lib_headers: [ 182*ec779b8eSAndroid Build Coastguard Worker "libstats_media_metrics", 183*ec779b8eSAndroid Build Coastguard Worker "libstatspull", 184*ec779b8eSAndroid Build Coastguard Worker "libstatssocket", 185*ec779b8eSAndroid Build Coastguard Worker ], 186*ec779b8eSAndroid Build Coastguard Worker 187*ec779b8eSAndroid Build Coastguard Worker // within the library, we use "xxx.h" 188*ec779b8eSAndroid Build Coastguard Worker local_include_dirs: [ 189*ec779b8eSAndroid Build Coastguard Worker "include/mediametricsservice", 190*ec779b8eSAndroid Build Coastguard Worker ], 191*ec779b8eSAndroid Build Coastguard Worker 192*ec779b8eSAndroid Build Coastguard Worker // external parties use <mediametricsservice/xxx.h> 193*ec779b8eSAndroid Build Coastguard Worker export_include_dirs: [ 194*ec779b8eSAndroid Build Coastguard Worker "include", 195*ec779b8eSAndroid Build Coastguard Worker ], 196*ec779b8eSAndroid Build Coastguard Worker 197*ec779b8eSAndroid Build Coastguard Worker static_libs: [ 198*ec779b8eSAndroid Build Coastguard Worker "libplatformprotos", 199*ec779b8eSAndroid Build Coastguard Worker ], 200*ec779b8eSAndroid Build Coastguard Worker 201*ec779b8eSAndroid Build Coastguard Worker header_libs: [ 202*ec779b8eSAndroid Build Coastguard Worker "libaaudio_headers", 203*ec779b8eSAndroid Build Coastguard Worker "libaudioutils_headers", 204*ec779b8eSAndroid Build Coastguard Worker ], 205*ec779b8eSAndroid Build Coastguard Worker} 206*ec779b8eSAndroid Build Coastguard Worker 207*ec779b8eSAndroid Build Coastguard Workercc_library { 208*ec779b8eSAndroid Build Coastguard Worker name: "libstats_media_metrics", 209*ec779b8eSAndroid Build Coastguard Worker generated_sources: ["stats_media_metrics.cpp"], 210*ec779b8eSAndroid Build Coastguard Worker generated_headers: ["stats_media_metrics.h"], 211*ec779b8eSAndroid Build Coastguard Worker export_generated_headers: ["stats_media_metrics.h"], 212*ec779b8eSAndroid Build Coastguard Worker shared_libs: [ 213*ec779b8eSAndroid Build Coastguard Worker "libcutils", 214*ec779b8eSAndroid Build Coastguard Worker "libstatspull", 215*ec779b8eSAndroid Build Coastguard Worker "libstatssocket", 216*ec779b8eSAndroid Build Coastguard Worker ], 217*ec779b8eSAndroid Build Coastguard Worker} 218*ec779b8eSAndroid Build Coastguard Worker 219*ec779b8eSAndroid Build Coastguard Workergenrule { 220*ec779b8eSAndroid Build Coastguard Worker name: "stats_media_metrics.h", 221*ec779b8eSAndroid Build Coastguard Worker tools: ["stats-log-api-gen"], 222*ec779b8eSAndroid Build Coastguard Worker cmd: "$(location stats-log-api-gen) --header $(genDir)/stats_media_metrics.h --module media_metrics --namespace android,stats,media_metrics", 223*ec779b8eSAndroid Build Coastguard Worker out: [ 224*ec779b8eSAndroid Build Coastguard Worker "stats_media_metrics.h", 225*ec779b8eSAndroid Build Coastguard Worker ], 226*ec779b8eSAndroid Build Coastguard Worker} 227*ec779b8eSAndroid Build Coastguard Worker 228*ec779b8eSAndroid Build Coastguard Workergenrule { 229*ec779b8eSAndroid Build Coastguard Worker name: "stats_media_metrics.cpp", 230*ec779b8eSAndroid Build Coastguard Worker tools: ["stats-log-api-gen"], 231*ec779b8eSAndroid Build Coastguard Worker cmd: "$(location stats-log-api-gen) --cpp $(genDir)/stats_media_metrics.cpp --module media_metrics --namespace android,stats,media_metrics --importHeader stats_media_metrics.h", 232*ec779b8eSAndroid Build Coastguard Worker out: [ 233*ec779b8eSAndroid Build Coastguard Worker "stats_media_metrics.cpp", 234*ec779b8eSAndroid Build Coastguard Worker ], 235*ec779b8eSAndroid Build Coastguard Worker} 236