blob: b763f0992d121163520fa110320aae322e127ea9 [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 Hungaf97c612023-06-12 15:04:00 -070022// base tidy_errors for this and all subprojects.
23audioflinger_base_tidy_errors = [
Andy Hungf9829e42022-10-06 12:09:49 -070024 // https://clang.llvm.org/extra/clang-tidy/checks/list.html
25 // For many categories, the checks are too many to specify individually.
26 // Feel free to disable as needed - as warnings are generally ignored,
27 // we treat warnings as errors.
28 "android-*",
29 "bugprone-*",
30 "cert-*",
31 "clang-analyzer-security*",
32 "google-*",
33 "misc-*",
34 //"modernize-*", // explicitly list the modernize as they can be subjective.
35 "modernize-avoid-bind",
36 //"modernize-avoid-c-arrays", // std::array<> can be verbose
37 "modernize-concat-nested-namespaces",
38 //"modernize-deprecated-headers", // C headers still ok even if there is C++ equivalent.
39 "modernize-deprecated-ios-base-aliases",
40 "modernize-loop-convert",
41 "modernize-make-shared",
42 "modernize-make-unique",
43 // "modernize-pass-by-value",
44 "modernize-raw-string-literal",
45 "modernize-redundant-void-arg",
46 "modernize-replace-auto-ptr",
47 "modernize-replace-random-shuffle",
48 "modernize-return-braced-init-list",
49 "modernize-shrink-to-fit",
50 "modernize-unary-static-assert",
51 // "modernize-use-auto", // found in MediaMetricsService.h, debatable - auto can obscure type
52 "modernize-use-bool-literals",
53 "modernize-use-default-member-init",
54 "modernize-use-emplace",
55 "modernize-use-equals-default",
56 "modernize-use-equals-delete",
57 // "modernize-use-nodiscard",
58 "modernize-use-noexcept",
59 "modernize-use-nullptr",
60 "modernize-use-override",
61 //"modernize-use-trailing-return-type", // not necessarily more readable
62 "modernize-use-transparent-functors",
63 "modernize-use-uncaught-exceptions",
64 "modernize-use-using",
65 "performance-*",
66
67 // Remove some pedantic stylistic requirements.
68 "-google-readability-casting", // C++ casts not always necessary and may be verbose
Andy Hunga159e4b2024-03-15 11:48:57 -070069 "-google-readability-todo", // do not require TODO(info)
Andy Hungf9829e42022-10-06 12:09:49 -070070
Andy Hungf9829e42022-10-06 12:09:49 -070071 "-bugprone-narrowing-conversions", // b/182410845
Andy Hunga159e4b2024-03-15 11:48:57 -070072 "-bugprone-suspicious-string-compare",
73 "-bugprone-unhandled-self-assignment",
74 "-cert-oop54-cpp", // found in TransactionLog.h
Andy Hungaf97c612023-06-12 15:04:00 -070075]
Andy Hungf9829e42022-10-06 12:09:49 -070076
Andy Hungaf97c612023-06-12 15:04:00 -070077// TODO(b/275642749) Reenable these warnings
78audioflinger_tidy_errors = audioflinger_base_tidy_errors + [
Andy Hungf9829e42022-10-06 12:09:49 -070079 "-bugprone-assignment-in-if-condition",
80 "-bugprone-forward-declaration-namespace",
81 "-bugprone-parent-virtual-call",
82 "-cert-dcl59-cpp",
83 "-cert-err34-c",
84 "-google-build-namespaces",
85 "-google-build-using-namespace",
86 "-google-default-arguments",
87 "-google-runtime-int",
88 "-misc-const-correctness",
89 "-misc-non-private-member-variables-in-classes",
90 "-modernize-concat-nested-namespaces",
91 "-modernize-loop-convert",
92 "-modernize-use-default-member-init",
93 "-modernize-use-equals-default",
94 "-modernize-use-nullptr",
95 "-modernize-use-override",
96 "-modernize-use-using",
97 "-performance-no-int-to-ptr",
98]
99
Andy Hung7bac54f2023-06-12 16:56:30 -0700100audioflinger_base_cflags = [
101 "-Wall",
102 "-Wdeprecated",
103 "-Werror",
Andy Hunga159e4b2024-03-15 11:48:57 -0700104 "-Werror=conditional-uninitialized",
Andy Hung7bac54f2023-06-12 16:56:30 -0700105 "-Werror=implicit-fallthrough",
106 "-Werror=sometimes-uninitialized",
Andy Hung7bac54f2023-06-12 16:56:30 -0700107 "-Wextra",
108
109 // suppress some warning chatter.
110 "-Wno-deprecated-copy-with-dtor",
111 "-Wno-deprecated-copy-with-user-provided-dtor",
112
113 "-Wredundant-decls",
114 "-Wshadow",
115 "-Wstrict-aliasing",
Andy Hung7bac54f2023-06-12 16:56:30 -0700116 "-Wthread-safety",
117 //"-Wthread-safety-negative", // experimental - looks broken in R.
118 "-Wunreachable-code",
119 "-Wunreachable-code-break",
120 "-Wunreachable-code-return",
121 "-Wunused",
122 "-Wused-but-marked-unused",
Andy Hung99486a62024-03-29 19:52:54 -0700123 "-fstrict-aliasing",
Andy Hung7bac54f2023-06-12 16:56:30 -0700124]
125
Andy Hungf9829e42022-10-06 12:09:49 -0700126// Eventually use common tidy defaults
127cc_defaults {
128 name: "audioflinger_flags_defaults",
129 // https://clang.llvm.org/docs/UsersManual.html#command-line-options
130 // https://clang.llvm.org/docs/DiagnosticsReference.html
Andy Hung7bac54f2023-06-12 16:56:30 -0700131 cflags: audioflinger_base_cflags,
Andy Hungf9829e42022-10-06 12:09:49 -0700132 // https://clang.llvm.org/extra/clang-tidy/
133 tidy: true,
Andy Hungaf97c612023-06-12 15:04:00 -0700134 tidy_checks: audioflinger_tidy_errors,
135 tidy_checks_as_errors: audioflinger_tidy_errors,
Andy Hungf9829e42022-10-06 12:09:49 -0700136 tidy_flags: [
Andy Hunga159e4b2024-03-15 11:48:57 -0700137 "-format-style=file",
Andy Hungf9829e42022-10-06 12:09:49 -0700138 ],
139}
140
Devin Moore55a2fc92023-05-11 23:48:00 +0000141cc_defaults {
142 name: "libaudioflinger_dependencies",
143
144 shared_libs: [
Devin Moore55a2fc92023-05-11 23:48:00 +0000145 "audioclient-types-aidl-cpp",
Andy Hunga159e4b2024-03-15 11:48:57 -0700146 "audioflinger-aidl-cpp",
Devin Moore55a2fc92023-05-11 23:48:00 +0000147 "av-types-aidl-cpp",
Eric Laurent4eb45d02023-12-20 12:07:17 +0100148 "com.android.media.audio-aconfig-cc",
Devin Moore55a2fc92023-05-11 23:48:00 +0000149 "effect-aidl-cpp",
Devin Moore55a2fc92023-05-11 23:48:00 +0000150 "libactivitymanager_aidl",
Andy Hunga159e4b2024-03-15 11:48:57 -0700151 "libaudioclient",
152 "libaudioclient_aidl_conversion",
Andy Hung76913a02023-06-15 14:50:18 -0700153 "libaudioflinger_datapath",
Andy Hung66cb3822023-05-23 17:36:46 -0700154 "libaudioflinger_fastpath",
Devin Moore55a2fc92023-05-11 23:48:00 +0000155 "libaudioflinger_timing",
Andy Hung2c20bd82023-05-24 11:53:47 -0700156 "libaudioflinger_utils",
Devin Moore55a2fc92023-05-11 23:48:00 +0000157 "libaudiofoundation",
158 "libaudiohal",
Andy Hunga159e4b2024-03-15 11:48:57 -0700159 "libaudiomanager",
Devin Moore55a2fc92023-05-11 23:48:00 +0000160 "libaudioprocessing",
161 "libaudioutils",
Devin Moore55a2fc92023-05-11 23:48:00 +0000162 "libbinder",
163 "libbinder_ndk",
Andy Hunga159e4b2024-03-15 11:48:57 -0700164 "libcutils",
165 "liblog",
166 "libmedia_helper",
Devin Moore55a2fc92023-05-11 23:48:00 +0000167 "libmediametrics",
168 "libmediautils",
Andy Hunga159e4b2024-03-15 11:48:57 -0700169 "libmemunreachable",
Andy Hung2c20bd82023-05-24 11:53:47 -0700170 "libnbaio",
Devin Moore55a2fc92023-05-11 23:48:00 +0000171 "libnblog",
172 "libpermission",
173 "libpowermanager",
Devin Moore55a2fc92023-05-11 23:48:00 +0000174 "libshmemcompat",
175 "libsounddose",
Andy Hunga159e4b2024-03-15 11:48:57 -0700176 "libutils",
Devin Moore55a2fc92023-05-11 23:48:00 +0000177 "libvibrator",
178 "packagemanager_aidl-cpp",
179 ],
180
181 static_libs: [
Devin Moore55a2fc92023-05-11 23:48:00 +0000182 "libaudiospdif",
Andy Hunga159e4b2024-03-15 11:48:57 -0700183 "libmedialogservice",
Devin Moore55a2fc92023-05-11 23:48:00 +0000184 ],
185}
186
Devin Moore55a2fc92023-05-11 23:48:00 +0000187cc_library {
Anton Hansson00167402019-03-27 14:15:54 +0000188 name: "libaudioflinger",
189
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000190 defaults: [
Andy Hungf9829e42022-10-06 12:09:49 -0700191 "audioflinger_flags_defaults",
Shunkai Yao49bc61f2023-10-10 19:31:10 +0000192 "latest_android_hardware_audio_core_sounddose_ndk_export_shared_lib_header",
193 "latest_android_hardware_audio_core_sounddose_ndk_shared",
194 "latest_android_media_audio_common_types_cpp_shared",
195 "libaudioflinger_dependencies",
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000196 ],
197
Anton Hansson00167402019-03-27 14:15:54 +0000198 srcs: [
199 "AudioFlinger.cpp",
Andy Hungf52264b2023-07-18 17:32:15 -0700200 "Client.cpp",
Eric Laurentb82e6b72019-11-22 17:25:04 -0800201 "DeviceEffectManager.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000202 "Effects.cpp",
Vlad Popab042ee62022-10-20 18:05:00 +0200203 "MelReporter.cpp",
Vlad Popa5161f8a2022-10-10 16:17:20 +0200204 "PatchCommandThread.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000205 "PatchPanel.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000206 "Threads.cpp",
207 "Tracks.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000208 ],
209
210 include_dirs: [
211 "frameworks/av/services/audiopolicy",
212 "frameworks/av/services/medialog",
213 ],
214
Anton Hansson00167402019-03-27 14:15:54 +0000215 static_libs: [
216 "libcpustats",
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: [
Atneya Nair87818d32024-05-23 10:59:30 -0700221 "audiopermissioncontroller_headers",
222 "audiopolicyservicelocal_headers",
Jiabin Huangebe64102021-09-07 20:01:07 +0000223 "libaaudio_headers",
Ytai Ben-Tsvi7e7a79d2020-12-15 16:48:16 -0800224 "libaudioclient_headers",
Marco Nelissena51151a2020-01-07 13:37:47 -0800225 "libaudiohal_headers",
Vlad Popab042ee62022-10-20 18:05:00 +0200226 "libaudioutils_headers",
Jiabin Huangbbb38232019-10-23 21:02:41 +0000227 "libmedia_headers",
228 ],
229
Atneya Nair87818d32024-05-23 10:59:30 -0700230 export_header_lib_headers: ["audiopolicyservicelocal_headers"],
231
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700232 export_shared_lib_headers: [
Steven Moreland30cc2ca2021-04-13 00:54:56 +0000233 "libpermission",
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700234 ],
235
Anton Hansson00167402019-03-27 14:15:54 +0000236 cflags: [
Anton Hansson00167402019-03-27 14:15:54 +0000237 "-Wall",
Andy Hunga159e4b2024-03-15 11:48:57 -0700238 "-Werror",
239 "-fvisibility=hidden",
Anton Hansson00167402019-03-27 14:15:54 +0000240 ],
241 sanitize: {
242 integer_overflow: true,
243 },
244
245}
Akshata Kadam2668ffb2022-08-03 10:24:32 +0530246
247cc_library_headers {
248 name: "libaudioflinger_headers",
249 export_include_dirs: ["."],
250}