xref: /aosp_15_r20/frameworks/av/services/oboeservice/Android.bp (revision ec779b8e0859a360c3d303172224686826e6e0e1)
1*ec779b8eSAndroid Build Coastguard Worker// Copyright (C) 2019 The Android Open Source Project
2*ec779b8eSAndroid Build Coastguard Worker//
3*ec779b8eSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*ec779b8eSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*ec779b8eSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*ec779b8eSAndroid Build Coastguard Worker//
7*ec779b8eSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*ec779b8eSAndroid Build Coastguard Worker//
9*ec779b8eSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*ec779b8eSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*ec779b8eSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*ec779b8eSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*ec779b8eSAndroid Build Coastguard Worker// limitations under the License.
14*ec779b8eSAndroid Build Coastguard Worker
15*ec779b8eSAndroid Build Coastguard Workerpackage {
16*ec779b8eSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
17*ec779b8eSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
18*ec779b8eSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_av_license"
19*ec779b8eSAndroid Build Coastguard Worker    // to get the below license kinds:
20*ec779b8eSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
21*ec779b8eSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_av_license"],
22*ec779b8eSAndroid Build Coastguard Worker}
23*ec779b8eSAndroid Build Coastguard Worker
24*ec779b8eSAndroid Build Coastguard Workertidy_errors = [
25*ec779b8eSAndroid Build Coastguard Worker    // https://clang.llvm.org/extra/clang-tidy/checks/list.html
26*ec779b8eSAndroid Build Coastguard Worker    // For many categories, the checks are too many to specify individually.
27*ec779b8eSAndroid Build Coastguard Worker    // Feel free to disable as needed - as warnings are generally ignored,
28*ec779b8eSAndroid Build Coastguard Worker    // we treat warnings as errors.
29*ec779b8eSAndroid Build Coastguard Worker    "android-*",
30*ec779b8eSAndroid Build Coastguard Worker    "bugprone-*",
31*ec779b8eSAndroid Build Coastguard Worker    "cert-*",
32*ec779b8eSAndroid Build Coastguard Worker    "clang-analyzer-security*",
33*ec779b8eSAndroid Build Coastguard Worker    "google-*",
34*ec779b8eSAndroid Build Coastguard Worker    "misc-*",
35*ec779b8eSAndroid Build Coastguard Worker    //"modernize-*",  // explicitly list the modernize as they can be subjective.
36*ec779b8eSAndroid Build Coastguard Worker    "modernize-avoid-bind",
37*ec779b8eSAndroid Build Coastguard Worker    //"modernize-avoid-c-arrays", // std::array<> can be verbose
38*ec779b8eSAndroid Build Coastguard Worker    "modernize-concat-nested-namespaces",
39*ec779b8eSAndroid Build Coastguard Worker    //"modernize-deprecated-headers", // C headers still ok even if there is C++ equivalent.
40*ec779b8eSAndroid Build Coastguard Worker    "modernize-deprecated-ios-base-aliases",
41*ec779b8eSAndroid Build Coastguard Worker    "modernize-loop-convert",
42*ec779b8eSAndroid Build Coastguard Worker    "modernize-make-shared",
43*ec779b8eSAndroid Build Coastguard Worker    "modernize-make-unique",
44*ec779b8eSAndroid Build Coastguard Worker    "modernize-pass-by-value",
45*ec779b8eSAndroid Build Coastguard Worker    "modernize-raw-string-literal",
46*ec779b8eSAndroid Build Coastguard Worker    "modernize-redundant-void-arg",
47*ec779b8eSAndroid Build Coastguard Worker    "modernize-replace-auto-ptr",
48*ec779b8eSAndroid Build Coastguard Worker    "modernize-replace-random-shuffle",
49*ec779b8eSAndroid Build Coastguard Worker    "modernize-return-braced-init-list",
50*ec779b8eSAndroid Build Coastguard Worker    "modernize-shrink-to-fit",
51*ec779b8eSAndroid Build Coastguard Worker    "modernize-unary-static-assert",
52*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-auto",
53*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-bool-literals",
54*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-default-member-init",
55*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-emplace",
56*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-equals-default",
57*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-equals-delete",
58*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-nodiscard",
59*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-noexcept",
60*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-nullptr",
61*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-override",
62*ec779b8eSAndroid Build Coastguard Worker    // "modernize-use-trailing-return-type", // not necessarily more readable
63*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-transparent-functors",
64*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-uncaught-exceptions",
65*ec779b8eSAndroid Build Coastguard Worker    "modernize-use-using",
66*ec779b8eSAndroid Build Coastguard Worker    "performance-*",
67*ec779b8eSAndroid Build Coastguard Worker
68*ec779b8eSAndroid Build Coastguard Worker    // Remove some pedantic stylistic requirements.
69*ec779b8eSAndroid Build Coastguard Worker    "-android-cloexec-dup", // found in AAudioServiceEndpointMMAP.cpp
70*ec779b8eSAndroid Build Coastguard Worker    "-bugprone-narrowing-conversions", // found in several interface from size_t to int32_t
71*ec779b8eSAndroid Build Coastguard Worker
72*ec779b8eSAndroid Build Coastguard Worker    "-google-build-using-namespace", // Reenable and fix later.
73*ec779b8eSAndroid Build Coastguard Worker    "-google-global-names-in-headers", // found in several files
74*ec779b8eSAndroid Build Coastguard Worker    "-google-readability-casting", // C++ casts not always necessary and may be verbose
75*ec779b8eSAndroid Build Coastguard Worker    "-google-readability-todo", // do not require TODO(info)
76*ec779b8eSAndroid Build Coastguard Worker
77*ec779b8eSAndroid Build Coastguard Worker    "-misc-non-private-member-variables-in-classes", // found in aidl generated files
78*ec779b8eSAndroid Build Coastguard Worker
79*ec779b8eSAndroid Build Coastguard Worker]
80*ec779b8eSAndroid Build Coastguard Worker
81*ec779b8eSAndroid Build Coastguard Workercc_defaults {
82*ec779b8eSAndroid Build Coastguard Worker    name: "libaaudioservice_dependencies",
83*ec779b8eSAndroid Build Coastguard Worker
84*ec779b8eSAndroid Build Coastguard Worker    shared_libs: [
85*ec779b8eSAndroid Build Coastguard Worker        "aaudio-aidl-cpp",
86*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.aaudio-aconfig-cc",
87*ec779b8eSAndroid Build Coastguard Worker        "com.android.media.aaudio-aconfig-cc",
88*ec779b8eSAndroid Build Coastguard Worker        "framework-permission-aidl-cpp",
89*ec779b8eSAndroid Build Coastguard Worker        "libaaudio_internal",
90*ec779b8eSAndroid Build Coastguard Worker        "libaudioclient",
91*ec779b8eSAndroid Build Coastguard Worker        "libaudioclient_aidl_conversion",
92*ec779b8eSAndroid Build Coastguard Worker        "libaudiofoundation",
93*ec779b8eSAndroid Build Coastguard Worker        "libaudioutils",
94*ec779b8eSAndroid Build Coastguard Worker        "libbase",
95*ec779b8eSAndroid Build Coastguard Worker        "libbinder",
96*ec779b8eSAndroid Build Coastguard Worker        "libcutils",
97*ec779b8eSAndroid Build Coastguard Worker        "liblog",
98*ec779b8eSAndroid Build Coastguard Worker        "libmedia_helper",
99*ec779b8eSAndroid Build Coastguard Worker        "libmediametrics",
100*ec779b8eSAndroid Build Coastguard Worker        "libmediautils",
101*ec779b8eSAndroid Build Coastguard Worker        "libutils",
102*ec779b8eSAndroid Build Coastguard Worker        "packagemanager_aidl-cpp",
103*ec779b8eSAndroid Build Coastguard Worker    ],
104*ec779b8eSAndroid Build Coastguard Worker
105*ec779b8eSAndroid Build Coastguard Worker    static_libs: [
106*ec779b8eSAndroid Build Coastguard Worker        "libaudioflinger",
107*ec779b8eSAndroid Build Coastguard Worker    ],
108*ec779b8eSAndroid Build Coastguard Worker}
109*ec779b8eSAndroid Build Coastguard Worker
110*ec779b8eSAndroid Build Coastguard Workercc_library_static {
111*ec779b8eSAndroid Build Coastguard Worker
112*ec779b8eSAndroid Build Coastguard Worker    name: "libaaudioservice",
113*ec779b8eSAndroid Build Coastguard Worker
114*ec779b8eSAndroid Build Coastguard Worker    defaults: [
115*ec779b8eSAndroid Build Coastguard Worker        "latest_android_media_audio_common_types_cpp_shared",
116*ec779b8eSAndroid Build Coastguard Worker        "libaaudioservice_dependencies",
117*ec779b8eSAndroid Build Coastguard Worker    ],
118*ec779b8eSAndroid Build Coastguard Worker
119*ec779b8eSAndroid Build Coastguard Worker    srcs: [
120*ec779b8eSAndroid Build Coastguard Worker        "AAudioClientTracker.cpp",
121*ec779b8eSAndroid Build Coastguard Worker        "AAudioCommandQueue.cpp",
122*ec779b8eSAndroid Build Coastguard Worker        "AAudioEndpointManager.cpp",
123*ec779b8eSAndroid Build Coastguard Worker        "AAudioMixer.cpp",
124*ec779b8eSAndroid Build Coastguard Worker        "AAudioService.cpp",
125*ec779b8eSAndroid Build Coastguard Worker        "AAudioServiceEndpoint.cpp",
126*ec779b8eSAndroid Build Coastguard Worker        "AAudioServiceEndpointCapture.cpp",
127*ec779b8eSAndroid Build Coastguard Worker        "AAudioServiceEndpointMMAP.cpp",
128*ec779b8eSAndroid Build Coastguard Worker        "AAudioServiceEndpointPlay.cpp",
129*ec779b8eSAndroid Build Coastguard Worker        "AAudioServiceEndpointShared.cpp",
130*ec779b8eSAndroid Build Coastguard Worker        "AAudioServiceStreamBase.cpp",
131*ec779b8eSAndroid Build Coastguard Worker        "AAudioServiceStreamMMAP.cpp",
132*ec779b8eSAndroid Build Coastguard Worker        "AAudioServiceStreamShared.cpp",
133*ec779b8eSAndroid Build Coastguard Worker        "AAudioStreamTracker.cpp",
134*ec779b8eSAndroid Build Coastguard Worker        "AAudioThread.cpp",
135*ec779b8eSAndroid Build Coastguard Worker        "SharedMemoryProxy.cpp",
136*ec779b8eSAndroid Build Coastguard Worker        "SharedMemoryWrapper.cpp",
137*ec779b8eSAndroid Build Coastguard Worker        "SharedRingBuffer.cpp",
138*ec779b8eSAndroid Build Coastguard Worker        "TimestampScheduler.cpp",
139*ec779b8eSAndroid Build Coastguard Worker    ],
140*ec779b8eSAndroid Build Coastguard Worker
141*ec779b8eSAndroid Build Coastguard Worker    cflags: [
142*ec779b8eSAndroid Build Coastguard Worker        "-Wall",
143*ec779b8eSAndroid Build Coastguard Worker        "-Werror",
144*ec779b8eSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
145*ec779b8eSAndroid Build Coastguard Worker        "-Wthread-safety",
146*ec779b8eSAndroid Build Coastguard Worker    ],
147*ec779b8eSAndroid Build Coastguard Worker
148*ec779b8eSAndroid Build Coastguard Worker    export_shared_lib_headers: [
149*ec779b8eSAndroid Build Coastguard Worker        "framework-permission-aidl-cpp",
150*ec779b8eSAndroid Build Coastguard Worker        "libaaudio_internal",
151*ec779b8eSAndroid Build Coastguard Worker    ],
152*ec779b8eSAndroid Build Coastguard Worker
153*ec779b8eSAndroid Build Coastguard Worker    header_libs: [
154*ec779b8eSAndroid Build Coastguard Worker        "libaudiohal_headers",
155*ec779b8eSAndroid Build Coastguard Worker    ],
156*ec779b8eSAndroid Build Coastguard Worker
157*ec779b8eSAndroid Build Coastguard Worker    include_dirs: [
158*ec779b8eSAndroid Build Coastguard Worker        "frameworks/av/media/libnbaio/include",
159*ec779b8eSAndroid Build Coastguard Worker        "frameworks/av/media/libnbaio/include_mono",
160*ec779b8eSAndroid Build Coastguard Worker    ],
161*ec779b8eSAndroid Build Coastguard Worker
162*ec779b8eSAndroid Build Coastguard Worker    export_include_dirs: ["."],
163*ec779b8eSAndroid Build Coastguard Worker
164*ec779b8eSAndroid Build Coastguard Worker    tidy: true,
165*ec779b8eSAndroid Build Coastguard Worker    tidy_checks: tidy_errors,
166*ec779b8eSAndroid Build Coastguard Worker    tidy_checks_as_errors: tidy_errors,
167*ec779b8eSAndroid Build Coastguard Worker    tidy_flags: [
168*ec779b8eSAndroid Build Coastguard Worker        "-format-style=file",
169*ec779b8eSAndroid Build Coastguard Worker    ],
170*ec779b8eSAndroid Build Coastguard Worker}
171