blob: 0351d2df31dcecce3ee01af4d47e050f15bb6569 [file] [log] [blame]
Anton Hansson33de46e2019-02-01 11:17:57 +00001// Media Statistics service
2//
3
Bob Badour56786ac2021-02-25 15:24:36 -08004package {
5 // See: http://go/android-license-faq
6 // A large-scale-change added 'default_applicable_licenses' to import
7 // all of the 'license_kinds' from "frameworks_av_license"
8 // to get the below license kinds:
9 // SPDX-license-identifier-Apache-2.0
10 default_applicable_licenses: ["frameworks_av_license"],
11}
12
Andy Hung3ab1b322020-05-18 10:47:31 -070013tidy_errors = [
14 // https://clang.llvm.org/extra/clang-tidy/checks/list.html
15 // For many categories, the checks are too many to specify individually.
16 // Feel free to disable as needed - as warnings are generally ignored,
17 // we treat warnings as errors.
18 "android-*",
19 "bugprone-*",
20 "cert-*",
21 "clang-analyzer-security*",
22 "google-*",
23 "misc-*",
24 //"modernize-*", // explicitly list the modernize as they can be subjective.
25 "modernize-avoid-bind",
26 //"modernize-avoid-c-arrays", // std::array<> can be verbose
27 "modernize-concat-nested-namespaces",
28 //"modernize-deprecated-headers", // C headers still ok even if there is C++ equivalent.
29 "modernize-deprecated-ios-base-aliases",
30 "modernize-loop-convert",
31 "modernize-make-shared",
32 "modernize-make-unique",
Chih-Hung Hsieh492141a2021-02-21 18:17:49 -080033 // "modernize-pass-by-value", // found in TimeMachine.h
Andy Hung3ab1b322020-05-18 10:47:31 -070034 "modernize-raw-string-literal",
35 "modernize-redundant-void-arg",
36 "modernize-replace-auto-ptr",
37 "modernize-replace-random-shuffle",
38 "modernize-return-braced-init-list",
39 "modernize-shrink-to-fit",
40 "modernize-unary-static-assert",
Chih-Hung Hsieh492141a2021-02-21 18:17:49 -080041 // "modernize-use-auto", // found in MediaMetricsService.h, debatable - auto can obscure type
Andy Hung3ab1b322020-05-18 10:47:31 -070042 "modernize-use-bool-literals",
43 "modernize-use-default-member-init",
44 "modernize-use-emplace",
45 "modernize-use-equals-default",
46 "modernize-use-equals-delete",
Chih-Hung Hsieh492141a2021-02-21 18:17:49 -080047 // "modernize-use-nodiscard", // found in TimeMachine.h
Andy Hung3ab1b322020-05-18 10:47:31 -070048 "modernize-use-noexcept",
49 "modernize-use-nullptr",
50 "modernize-use-override",
51 //"modernize-use-trailing-return-type", // not necessarily more readable
52 "modernize-use-transparent-functors",
53 "modernize-use-uncaught-exceptions",
54 "modernize-use-using",
55 "performance-*",
56
57 // Remove some pedantic stylistic requirements.
58 "-google-readability-casting", // C++ casts not always necessary and may be verbose
59 "-google-readability-todo", // do not require TODO(info)
Chih-Hung Hsieh492141a2021-02-21 18:17:49 -080060
61 "-bugprone-unhandled-self-assignment", // found in TimeMachine.h
62 "-bugprone-suspicious-string-compare", // found in TimeMachine.h
63 "-cert-oop54-cpp", // found in TransactionLog.h
Pirama Arumuga Nainard11dda82021-03-17 22:10:11 -070064 "-bugprone-narrowing-conversions", // b/182410845
Andy Hung3ab1b322020-05-18 10:47:31 -070065]
66
67cc_defaults {
68 name: "mediametrics_flags_defaults",
69 // https://clang.llvm.org/docs/UsersManual.html#command-line-options
70 // https://clang.llvm.org/docs/DiagnosticsReference.html
71 cflags: [
72 "-Wall",
73 "-Wdeprecated",
74 "-Werror",
75 "-Werror=implicit-fallthrough",
76 "-Werror=sometimes-uninitialized",
77 "-Werror=conditional-uninitialized",
78 "-Wextra",
79 "-Wredundant-decls",
Hangyu Kuang66062672020-12-03 19:30:25 +000080 "-Wshadow",
Andy Hung3ab1b322020-05-18 10:47:31 -070081 "-Wstrict-aliasing",
82 "-fstrict-aliasing",
83 "-Wthread-safety",
84 //"-Wthread-safety-negative", // experimental - looks broken in R.
85 "-Wunreachable-code",
86 "-Wunreachable-code-break",
87 "-Wunreachable-code-return",
88 "-Wunused",
89 "-Wused-but-marked-unused",
90 ],
91 // https://clang.llvm.org/extra/clang-tidy/
92 tidy: true,
93 tidy_checks: tidy_errors,
94 tidy_checks_as_errors: tidy_errors,
95 tidy_flags: [
Chih-Hung Hsieh492141a2021-02-21 18:17:49 -080096 "-format-style=file",
Andy Hung3ab1b322020-05-18 10:47:31 -070097 ],
98}
99
Anton Hansson33de46e2019-02-01 11:17:57 +0000100cc_binary {
101 name: "mediametrics",
Andy Hung3ab1b322020-05-18 10:47:31 -0700102 defaults: [
103 "mediametrics_flags_defaults",
104 ],
Anton Hansson33de46e2019-02-01 11:17:57 +0000105
106 srcs: [
107 "main_mediametrics.cpp",
Andy Hungc89c8dc2019-10-16 17:48:21 -0700108 ],
109
110 shared_libs: [
111 "libbinder",
112 "liblog",
Ray Essick40e8e5e2019-12-05 20:19:40 -0800113 "libmediametricsservice",
Andy Hunga85efab2019-12-23 11:41:29 -0800114 "libmediautils",
Andy Hungc89c8dc2019-10-16 17:48:21 -0700115 "libutils",
Jeongik Chaa01ed782021-02-11 09:50:00 +0900116 "mediametricsservice-aidl-cpp",
Andy Hungc89c8dc2019-10-16 17:48:21 -0700117 ],
Marco Nelissen7c96ea72020-01-10 15:46:22 -0800118 header_libs: [
Andy Hunga629bd12020-06-05 16:03:53 -0700119 "libaudioutils_headers",
Marco Nelissen7c96ea72020-01-10 15:46:22 -0800120 "libmediametrics_headers",
121 ],
Andy Hungc89c8dc2019-10-16 17:48:21 -0700122
123 init_rc: [
124 "mediametrics.rc",
125 ],
Andy Hungc89c8dc2019-10-16 17:48:21 -0700126}
127
Mufaddal Chakera1d5f7ed2020-10-13 14:09:26 +0530128cc_library {
Ray Essick40e8e5e2019-12-05 20:19:40 -0800129 name: "libmediametricsservice",
Andy Hung3ab1b322020-05-18 10:47:31 -0700130 defaults: [
131 "mediametrics_flags_defaults",
132 ],
Andy Hungc89c8dc2019-10-16 17:48:21 -0700133
134 srcs: [
Andy Hung06f3aba2019-12-03 16:36:42 -0800135 "AudioAnalytics.cpp",
Joey Poomarin52989982020-03-05 17:40:49 +0800136 "AudioPowerUsage.cpp",
Andy Hung1ea842e2020-05-18 10:47:31 -0700137 "AudioTypes.cpp",
Ray Essick5a557292020-06-10 21:31:33 -0700138 "cleaner.cpp",
Andy Hungc89c8dc2019-10-16 17:48:21 -0700139 "iface_statsd.cpp",
Ray Essick40e8e5e2019-12-05 20:19:40 -0800140 "MediaMetricsService.cpp",
Ray Essick6ce27e52019-02-15 10:58:05 -0800141 "statsd_audiopolicy.cpp",
142 "statsd_audiorecord.cpp",
143 "statsd_audiothread.cpp",
144 "statsd_audiotrack.cpp",
145 "statsd_codec.cpp",
146 "statsd_drm.cpp",
147 "statsd_extractor.cpp",
Santiago Seifert149f0582020-08-11 17:58:41 +0100148 "statsd_mediaparser.cpp",
Ray Essick6ce27e52019-02-15 10:58:05 -0800149 "statsd_nuplayer.cpp",
150 "statsd_recorder.cpp",
Andy Hungc9b6f8b2021-07-08 10:17:55 -0700151 "StringUtils.cpp",
152 "ValidateId.cpp",
Anton Hansson33de46e2019-02-01 11:17:57 +0000153 ],
154
Ray Essick6ce27e52019-02-15 10:58:05 -0800155 proto: {
156 type: "lite",
157 },
158
Anton Hansson33de46e2019-02-01 11:17:57 +0000159 shared_libs: [
Jeongik Chaa01ed782021-02-11 09:50:00 +0900160 "mediametricsservice-aidl-cpp",
Andy Hung1ea842e2020-05-18 10:47:31 -0700161 "libbase", // android logging
Anton Hansson33de46e2019-02-01 11:17:57 +0000162 "libbinder",
Joey Poomarin52989982020-03-05 17:40:49 +0800163 "libcutils",
Andy Hung17dbaf22019-10-11 14:06:31 -0700164 "liblog",
Andy Hung1ea842e2020-05-18 10:47:31 -0700165 "libmedia_helper",
Anton Hansson33de46e2019-02-01 11:17:57 +0000166 "libmediametrics",
Andy Hunga85efab2019-12-23 11:41:29 -0800167 "libmediautils",
Andy Hung9099a1a2020-04-04 14:23:36 -0700168 "libmemunreachable",
Andy Hung17dbaf22019-10-11 14:06:31 -0700169 "libprotobuf-cpp-lite",
Robert Shih2e15aed2021-03-16 18:30:35 -0700170 "libstagefright_foundation",
Ray Essick6ce27e52019-02-15 10:58:05 -0800171 "libstatslog",
Robert Shih2e15aed2021-03-16 18:30:35 -0700172 "libstatspull",
173 "libstatssocket",
Anton Hansson33de46e2019-02-01 11:17:57 +0000174 "libutils",
175 ],
176
Robert Shih2e15aed2021-03-16 18:30:35 -0700177 export_shared_lib_headers: [
178 "libstatspull",
179 "libstatssocket",
180 ],
181
Ray Essick6ce27e52019-02-15 10:58:05 -0800182 static_libs: [
183 "libplatformprotos",
Ray Essick6ce27e52019-02-15 10:58:05 -0800184 ],
Anton Hansson33de46e2019-02-01 11:17:57 +0000185
186 include_dirs: [
Andy Hungc89c8dc2019-10-16 17:48:21 -0700187 "system/media/audio_utils/include",
Anton Hansson33de46e2019-02-01 11:17:57 +0000188 ],
Anton Hansson33de46e2019-02-01 11:17:57 +0000189}