blob: cef17ac11d87f1bea40a2a7a2fa16ea62fb915e0 [file] [log] [blame]
Anton Hansson00167402019-03-27 14:15:54 +00001
2
Bob Badour56786ac2021-02-25 15:24:36 -08003package {
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
Andy Hungf9829e42022-10-06 12:09:49 -070022tidy_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
Anton Hansson00167402019-03-27 14:15:54 +0000137cc_library_shared {
138 name: "libaudioflinger",
139
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000140 defaults: [
141 "latest_android_media_audio_common_types_cpp_shared",
Vlad Popa03bd5bc2023-01-17 16:16:51 +0100142 "latest_android_hardware_audio_core_sounddose_ndk_shared",
Andy Hungf9829e42022-10-06 12:09:49 -0700143 "audioflinger_flags_defaults",
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000144 ],
145
Anton Hansson00167402019-03-27 14:15:54 +0000146 srcs: [
147 "AudioFlinger.cpp",
148 "AudioHwDevice.cpp",
149 "AudioStreamOut.cpp",
150 "AudioWatchdog.cpp",
151 "BufLog.cpp",
Eric Laurentb82e6b72019-11-22 17:25:04 -0800152 "DeviceEffectManager.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000153 "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",
Vlad Popab042ee62022-10-20 18:05:00 +0200163 "MelReporter.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000164 "NBAIO_Tee.cpp",
Vlad Popa5161f8a2022-10-10 16:17:20 +0200165 "PatchCommandThread.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000166 "PatchPanel.cpp",
Jiabin Huangebe64102021-09-07 20:01:07 +0000167 "PropertyUtils.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000168 "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: [
Jeongik Cha7f2285b2021-01-28 00:49:46 +0900181 "audioflinger-aidl-cpp",
182 "audioclient-types-aidl-cpp",
183 "av-types-aidl-cpp",
184 "effect-aidl-cpp",
Ytai Ben-Tsvi10dc0a62020-09-18 11:31:55 -0700185 "libaudioclient_aidl_conversion",
Andy Hung398ffa22022-12-13 19:19:53 -0800186 "libaudioflinger_timing",
jiabin43810402019-10-24 14:58:31 -0700187 "libaudiofoundation",
Anton Hansson00167402019-03-27 14:15:54 +0000188 "libaudiohal",
189 "libaudioprocessing",
190 "libaudiospdif",
191 "libaudioutils",
192 "libcutils",
193 "libutils",
194 "liblog",
195 "libbinder",
Vlad Popa1d5f0d52022-12-18 12:21:26 +0100196 "libbinder_ndk",
Anton Hansson00167402019-03-27 14:15:54 +0000197 "libaudioclient",
Vlad Popae8d99472022-06-30 16:02:48 +0200198 "libaudiomanager",
Anton Hansson00167402019-03-27 14:15:54 +0000199 "libmedialogservice",
200 "libmediametrics",
201 "libmediautils",
202 "libnbaio",
203 "libnblog",
Steven Moreland30cc2ca2021-04-13 00:54:56 +0000204 "libpermission",
Anton Hansson00167402019-03-27 14:15:54 +0000205 "libpowermanager",
Anton Hansson00167402019-03-27 14:15:54 +0000206 "libmemunreachable",
207 "libmedia_helper",
Ytai Ben-Tsvi9cd89812020-07-01 17:12:06 -0700208 "libshmemcompat",
Vlad Popa2900c0a2022-10-24 13:38:00 +0200209 "libsounddose",
Anton Hansson00167402019-03-27 14:15:54 +0000210 "libvibrator",
Samiul Islam3032bfb2021-08-26 11:41:21 +0100211 "packagemanager_aidl-cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000212 ],
213
214 static_libs: [
215 "libcpustats",
216 "libsndfile",
Svet Ganov3e5f14f2021-05-13 22:51:08 +0000217 "libpermission",
Anton Hansson00167402019-03-27 14:15:54 +0000218 ],
219
Jiabin Huangbbb38232019-10-23 21:02:41 +0000220 header_libs: [
Jiabin Huangebe64102021-09-07 20:01:07 +0000221 "libaaudio_headers",
Ytai Ben-Tsvi7e7a79d2020-12-15 16:48:16 -0800222 "libaudioclient_headers",
Marco Nelissena51151a2020-01-07 13:37:47 -0800223 "libaudiohal_headers",
Vlad Popab042ee62022-10-20 18:05:00 +0200224 "libaudioutils_headers",
Jiabin Huangbbb38232019-10-23 21:02:41 +0000225 "libmedia_headers",
226 ],
227
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700228 export_shared_lib_headers: [
Steven Moreland30cc2ca2021-04-13 00:54:56 +0000229 "libpermission",
Vlad Popa03bd5bc2023-01-17 16:16:51 +0100230 "android.hardware.audio.core.sounddose-V1-ndk",
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700231 ],
232
Anton Hansson00167402019-03-27 14:15:54 +0000233 cflags: [
234 "-DSTATE_QUEUE_INSTANTIATIONS=\"StateQueueInstantiations.cpp\"",
235 "-fvisibility=hidden",
236 "-Werror",
237 "-Wall",
238 ],
239 sanitize: {
240 integer_overflow: true,
241 },
242
243}
Akshata Kadam2668ffb2022-08-03 10:24:32 +0530244
245cc_library_headers {
246 name: "libaudioflinger_headers",
247 export_include_dirs: ["."],
248}