• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2
3package {
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
22tidy_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
137cc_library_shared {
138    name: "libaudioflinger",
139
140    defaults: [
141        "latest_android_media_audio_common_types_cpp_shared",
142        "latest_android_hardware_audio_core_sounddose_ndk_shared",
143        "audioflinger_flags_defaults",
144    ],
145
146    srcs: [
147        "AudioFlinger.cpp",
148        "AudioHwDevice.cpp",
149        "AudioStreamOut.cpp",
150        "AudioWatchdog.cpp",
151        "BufLog.cpp",
152        "DeviceEffectManager.cpp",
153        "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",
163        "MelReporter.cpp",
164        "NBAIO_Tee.cpp",
165        "PatchCommandThread.cpp",
166        "PatchPanel.cpp",
167        "PropertyUtils.cpp",
168        "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: [
181        "audioflinger-aidl-cpp",
182        "audioclient-types-aidl-cpp",
183        "av-types-aidl-cpp",
184        "effect-aidl-cpp",
185        "libaudioclient_aidl_conversion",
186        "libactivitymanager_aidl",
187        "libaudioflinger_timing",
188        "libaudiofoundation",
189        "libaudiohal",
190        "libaudioprocessing",
191        "libaudiospdif",
192        "libaudioutils",
193        "libcutils",
194        "libutils",
195        "liblog",
196        "libbinder",
197        "libbinder_ndk",
198        "libaudioclient",
199        "libaudiomanager",
200        "libmedialogservice",
201        "libmediametrics",
202        "libmediautils",
203        "libnbaio",
204        "libnblog",
205        "libpermission",
206        "libpowermanager",
207        "libmemunreachable",
208        "libmedia_helper",
209        "libshmemcompat",
210        "libsounddose",
211        "libvibrator",
212        "packagemanager_aidl-cpp",
213    ],
214
215    static_libs: [
216        "libcpustats",
217        "libsndfile",
218        "libpermission",
219    ],
220
221    header_libs: [
222        "libaaudio_headers",
223        "libaudioclient_headers",
224        "libaudiohal_headers",
225        "libaudioutils_headers",
226        "libmedia_headers",
227    ],
228
229    export_shared_lib_headers: [
230        "libpermission",
231        "android.hardware.audio.core.sounddose-V1-ndk",
232    ],
233
234    cflags: [
235        "-DSTATE_QUEUE_INSTANTIATIONS=\"StateQueueInstantiations.cpp\"",
236        "-fvisibility=hidden",
237        "-Werror",
238        "-Wall",
239    ],
240    sanitize: {
241        integer_overflow: true,
242    },
243
244}
245
246cc_library_headers {
247    name: "libaudioflinger_headers",
248    export_include_dirs: ["."],
249}
250