blob: 9f2607452763f84df5b932056fc6c690ea476830 [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
69 "-google-readability-todo", // do not require TODO(info)
70
71 "-bugprone-unhandled-self-assignment",
72 "-bugprone-suspicious-string-compare",
73 "-cert-oop54-cpp", // found in TransactionLog.h
74 "-bugprone-narrowing-conversions", // b/182410845
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",
104 "-Werror=implicit-fallthrough",
105 "-Werror=sometimes-uninitialized",
106 "-Werror=conditional-uninitialized",
107 "-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",
116 "-fstrict-aliasing",
117 "-Wthread-safety",
118 //"-Wthread-safety-negative", // experimental - looks broken in R.
119 "-Wunreachable-code",
120 "-Wunreachable-code-break",
121 "-Wunreachable-code-return",
122 "-Wunused",
123 "-Wused-but-marked-unused",
124]
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: [
137 "-format-style=file",
138 ],
139}
140
Devin Moore55a2fc92023-05-11 23:48:00 +0000141cc_defaults {
142 name: "libaudioflinger_dependencies",
143
144 shared_libs: [
145 "audioflinger-aidl-cpp",
146 "audioclient-types-aidl-cpp",
147 "av-types-aidl-cpp",
148 "effect-aidl-cpp",
149 "libaudioclient_aidl_conversion",
150 "libactivitymanager_aidl",
Andy Hung76913a02023-06-15 14:50:18 -0700151 "libaudioflinger_datapath",
Andy Hung66cb3822023-05-23 17:36:46 -0700152 "libaudioflinger_fastpath",
Devin Moore55a2fc92023-05-11 23:48:00 +0000153 "libaudioflinger_timing",
Andy Hung2c20bd82023-05-24 11:53:47 -0700154 "libaudioflinger_utils",
Devin Moore55a2fc92023-05-11 23:48:00 +0000155 "libaudiofoundation",
156 "libaudiohal",
157 "libaudioprocessing",
158 "libaudioutils",
Andy Hung97958e92023-09-22 19:21:52 -0700159 "libaudioutils_nonvndk",
Devin Moore55a2fc92023-05-11 23:48:00 +0000160 "libcutils",
161 "libutils",
162 "liblog",
163 "libbinder",
164 "libbinder_ndk",
165 "libaudioclient",
166 "libaudiomanager",
167 "libmediametrics",
168 "libmediautils",
Andy Hung2c20bd82023-05-24 11:53:47 -0700169 "libnbaio",
Devin Moore55a2fc92023-05-11 23:48:00 +0000170 "libnblog",
171 "libpermission",
172 "libpowermanager",
173 "libmemunreachable",
174 "libmedia_helper",
175 "libshmemcompat",
176 "libsounddose",
177 "libvibrator",
178 "packagemanager_aidl-cpp",
179 ],
180
181 static_libs: [
182 "libmedialogservice",
183 "libaudiospdif",
Devin Moore55a2fc92023-05-11 23:48:00 +0000184 ],
185}
186
187
188cc_library {
Anton Hansson00167402019-03-27 14:15:54 +0000189 name: "libaudioflinger",
190
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000191 defaults: [
Andy Hungf9829e42022-10-06 12:09:49 -0700192 "audioflinger_flags_defaults",
Shunkai Yao49bc61f2023-10-10 19:31:10 +0000193 "latest_android_hardware_audio_core_sounddose_ndk_export_shared_lib_header",
194 "latest_android_hardware_audio_core_sounddose_ndk_shared",
195 "latest_android_media_audio_common_types_cpp_shared",
196 "libaudioflinger_dependencies",
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000197 ],
198
Anton Hansson00167402019-03-27 14:15:54 +0000199 srcs: [
200 "AudioFlinger.cpp",
Andy Hungf52264b2023-07-18 17:32:15 -0700201 "Client.cpp",
Eric Laurentb82e6b72019-11-22 17:25:04 -0800202 "DeviceEffectManager.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000203 "Effects.cpp",
Vlad Popab042ee62022-10-20 18:05:00 +0200204 "MelReporter.cpp",
Vlad Popa5161f8a2022-10-10 16:17:20 +0200205 "PatchCommandThread.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000206 "PatchPanel.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000207 "Threads.cpp",
208 "Tracks.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000209 ],
210
211 include_dirs: [
212 "frameworks/av/services/audiopolicy",
213 "frameworks/av/services/medialog",
214 ],
215
Anton Hansson00167402019-03-27 14:15:54 +0000216 static_libs: [
217 "libcpustats",
Svet Ganov3e5f14f2021-05-13 22:51:08 +0000218 "libpermission",
Anton Hansson00167402019-03-27 14:15:54 +0000219 ],
220
Jiabin Huangbbb38232019-10-23 21:02:41 +0000221 header_libs: [
Jiabin Huangebe64102021-09-07 20:01:07 +0000222 "libaaudio_headers",
Ytai Ben-Tsvi7e7a79d2020-12-15 16:48:16 -0800223 "libaudioclient_headers",
Marco Nelissena51151a2020-01-07 13:37:47 -0800224 "libaudiohal_headers",
Vlad Popab042ee62022-10-20 18:05:00 +0200225 "libaudioutils_headers",
Jiabin Huangbbb38232019-10-23 21:02:41 +0000226 "libmedia_headers",
227 ],
228
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700229 export_shared_lib_headers: [
Steven Moreland30cc2ca2021-04-13 00:54:56 +0000230 "libpermission",
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700231 ],
232
Anton Hansson00167402019-03-27 14:15:54 +0000233 cflags: [
Anton Hansson00167402019-03-27 14:15:54 +0000234 "-fvisibility=hidden",
235 "-Werror",
236 "-Wall",
237 ],
238 sanitize: {
239 integer_overflow: true,
240 },
241
242}
Akshata Kadam2668ffb2022-08-03 10:24:32 +0530243
244cc_library_headers {
245 name: "libaudioflinger_headers",
246 export_include_dirs: ["."],
247}