blob: c6ce51f0a126f8dca793236955a3eb7a02c237c1 [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
Devin Moore55a2fc92023-05-11 23:48:00 +0000137cc_defaults {
138 name: "libaudioflinger_dependencies",
139
140 shared_libs: [
141 "audioflinger-aidl-cpp",
142 "audioclient-types-aidl-cpp",
143 "av-types-aidl-cpp",
144 "effect-aidl-cpp",
145 "libaudioclient_aidl_conversion",
146 "libactivitymanager_aidl",
Andy Hung66cb3822023-05-23 17:36:46 -0700147 "libaudioflinger_fastpath",
Devin Moore55a2fc92023-05-11 23:48:00 +0000148 "libaudioflinger_timing",
Andy Hung2c20bd82023-05-24 11:53:47 -0700149 "libaudioflinger_utils",
Devin Moore55a2fc92023-05-11 23:48:00 +0000150 "libaudiofoundation",
151 "libaudiohal",
152 "libaudioprocessing",
153 "libaudioutils",
154 "libcutils",
155 "libutils",
156 "liblog",
157 "libbinder",
158 "libbinder_ndk",
159 "libaudioclient",
160 "libaudiomanager",
161 "libmediametrics",
162 "libmediautils",
Andy Hung2c20bd82023-05-24 11:53:47 -0700163 "libnbaio",
Devin Moore55a2fc92023-05-11 23:48:00 +0000164 "libnblog",
165 "libpermission",
166 "libpowermanager",
167 "libmemunreachable",
168 "libmedia_helper",
169 "libshmemcompat",
170 "libsounddose",
171 "libvibrator",
172 "packagemanager_aidl-cpp",
173 ],
174
175 static_libs: [
176 "libmedialogservice",
177 "libaudiospdif",
Devin Moore55a2fc92023-05-11 23:48:00 +0000178 ],
179}
180
181
182cc_library {
Anton Hansson00167402019-03-27 14:15:54 +0000183 name: "libaudioflinger",
184
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000185 defaults: [
Devin Moore55a2fc92023-05-11 23:48:00 +0000186 "libaudioflinger_dependencies",
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000187 "latest_android_media_audio_common_types_cpp_shared",
Vlad Popa03bd5bc2023-01-17 16:16:51 +0100188 "latest_android_hardware_audio_core_sounddose_ndk_shared",
Andy Hungf9829e42022-10-06 12:09:49 -0700189 "audioflinger_flags_defaults",
Lorena Torres-Huerta03112f62022-08-12 23:08:12 +0000190 ],
191
Anton Hansson00167402019-03-27 14:15:54 +0000192 srcs: [
193 "AudioFlinger.cpp",
194 "AudioHwDevice.cpp",
195 "AudioStreamOut.cpp",
Eric Laurentb82e6b72019-11-22 17:25:04 -0800196 "DeviceEffectManager.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000197 "Effects.cpp",
Vlad Popab042ee62022-10-20 18:05:00 +0200198 "MelReporter.cpp",
Vlad Popa5161f8a2022-10-10 16:17:20 +0200199 "PatchCommandThread.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000200 "PatchPanel.cpp",
Jiabin Huangebe64102021-09-07 20:01:07 +0000201 "PropertyUtils.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000202 "SpdifStreamOut.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000203 "Threads.cpp",
204 "Tracks.cpp",
Anton Hansson00167402019-03-27 14:15:54 +0000205 ],
206
207 include_dirs: [
208 "frameworks/av/services/audiopolicy",
209 "frameworks/av/services/medialog",
210 ],
211
Anton Hansson00167402019-03-27 14:15:54 +0000212 static_libs: [
213 "libcpustats",
Svet Ganov3e5f14f2021-05-13 22:51:08 +0000214 "libpermission",
Anton Hansson00167402019-03-27 14:15:54 +0000215 ],
216
Jiabin Huangbbb38232019-10-23 21:02:41 +0000217 header_libs: [
Jiabin Huangebe64102021-09-07 20:01:07 +0000218 "libaaudio_headers",
Ytai Ben-Tsvi7e7a79d2020-12-15 16:48:16 -0800219 "libaudioclient_headers",
Marco Nelissena51151a2020-01-07 13:37:47 -0800220 "libaudiohal_headers",
Vlad Popab042ee62022-10-20 18:05:00 +0200221 "libaudioutils_headers",
Jiabin Huangbbb38232019-10-23 21:02:41 +0000222 "libmedia_headers",
223 ],
224
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700225 export_shared_lib_headers: [
Steven Moreland30cc2ca2021-04-13 00:54:56 +0000226 "libpermission",
Vlad Popa03bd5bc2023-01-17 16:16:51 +0100227 "android.hardware.audio.core.sounddose-V1-ndk",
Philip P. Moltmannbda45752020-07-17 16:41:18 -0700228 ],
229
Anton Hansson00167402019-03-27 14:15:54 +0000230 cflags: [
Anton Hansson00167402019-03-27 14:15:54 +0000231 "-fvisibility=hidden",
232 "-Werror",
233 "-Wall",
234 ],
235 sanitize: {
236 integer_overflow: true,
237 },
238
239}
Akshata Kadam2668ffb2022-08-03 10:24:32 +0530240
241cc_library_headers {
242 name: "libaudioflinger_headers",
243 export_include_dirs: ["."],
244}