xref: /aosp_15_r20/frameworks/native/libs/gui/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1*38e8c45fSAndroid Build Coastguard Worker// Copyright 2010 The Android Open Source Project
2*38e8c45fSAndroid Build Coastguard Worker//
3*38e8c45fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*38e8c45fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*38e8c45fSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*38e8c45fSAndroid Build Coastguard Worker//
7*38e8c45fSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*38e8c45fSAndroid Build Coastguard Worker//
9*38e8c45fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*38e8c45fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*38e8c45fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*38e8c45fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*38e8c45fSAndroid Build Coastguard Worker// limitations under the License.
14*38e8c45fSAndroid Build Coastguard Workerpackage {
15*38e8c45fSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
16*38e8c45fSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
17*38e8c45fSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_native_license"
18*38e8c45fSAndroid Build Coastguard Worker    // to get the below license kinds:
19*38e8c45fSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
20*38e8c45fSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_native_license"],
21*38e8c45fSAndroid Build Coastguard Worker    default_team: "trendy_team_android_core_graphics_stack",
22*38e8c45fSAndroid Build Coastguard Worker}
23*38e8c45fSAndroid Build Coastguard Worker
24*38e8c45fSAndroid Build Coastguard Workeraconfig_declarations {
25*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_flags",
26*38e8c45fSAndroid Build Coastguard Worker    package: "com.android.graphics.libgui.flags",
27*38e8c45fSAndroid Build Coastguard Worker    container: "system",
28*38e8c45fSAndroid Build Coastguard Worker    srcs: ["libgui_flags.aconfig"],
29*38e8c45fSAndroid Build Coastguard Worker}
30*38e8c45fSAndroid Build Coastguard Worker
31*38e8c45fSAndroid Build Coastguard Workercc_aconfig_library {
32*38e8c45fSAndroid Build Coastguard Worker    name: "libguiflags",
33*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
34*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
35*38e8c45fSAndroid Build Coastguard Worker    min_sdk_version: "29",
36*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
37*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
38*38e8c45fSAndroid Build Coastguard Worker        "com.android.media.swcodec",
39*38e8c45fSAndroid Build Coastguard Worker        "test_com.android.media.swcodec",
40*38e8c45fSAndroid Build Coastguard Worker    ],
41*38e8c45fSAndroid Build Coastguard Worker    aconfig_declarations: "libgui_flags",
42*38e8c45fSAndroid Build Coastguard Worker}
43*38e8c45fSAndroid Build Coastguard Worker
44*38e8c45fSAndroid Build Coastguard Workercc_aconfig_library {
45*38e8c45fSAndroid Build Coastguard Worker    name: "libguiflags_no_apex",
46*38e8c45fSAndroid Build Coastguard Worker    aconfig_declarations: "libgui_flags",
47*38e8c45fSAndroid Build Coastguard Worker}
48*38e8c45fSAndroid Build Coastguard Worker
49*38e8c45fSAndroid Build Coastguard Workercc_library_headers {
50*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_headers",
51*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
52*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
53*38e8c45fSAndroid Build Coastguard Worker
54*38e8c45fSAndroid Build Coastguard Worker    // we must build this module to get the required header as that is generated
55*38e8c45fSAndroid Build Coastguard Worker    export_shared_lib_headers: [
56*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
57*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
58*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
59*38e8c45fSAndroid Build Coastguard Worker    ],
60*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
61*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
62*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
63*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
64*38e8c45fSAndroid Build Coastguard Worker    ],
65*38e8c45fSAndroid Build Coastguard Worker    static_libs: ["libguiflags"],
66*38e8c45fSAndroid Build Coastguard Worker    export_static_lib_headers: ["libguiflags"],
67*38e8c45fSAndroid Build Coastguard Worker    min_sdk_version: "29",
68*38e8c45fSAndroid Build Coastguard Worker    // TODO(b/218719284) can media use be constrained to libgui_bufferqueue_static?
69*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
70*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
71*38e8c45fSAndroid Build Coastguard Worker        "com.android.media.swcodec",
72*38e8c45fSAndroid Build Coastguard Worker        "test_com.android.media.swcodec",
73*38e8c45fSAndroid Build Coastguard Worker    ],
74*38e8c45fSAndroid Build Coastguard Worker}
75*38e8c45fSAndroid Build Coastguard Worker
76*38e8c45fSAndroid Build Coastguard Workercc_library_headers {
77*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_aidl_headers",
78*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
79*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
80*38e8c45fSAndroid Build Coastguard Worker        "libgui_aidl_static",
81*38e8c45fSAndroid Build Coastguard Worker    ],
82*38e8c45fSAndroid Build Coastguard Worker
83*38e8c45fSAndroid Build Coastguard Worker    export_static_lib_headers: [
84*38e8c45fSAndroid Build Coastguard Worker        "libgui_aidl_static",
85*38e8c45fSAndroid Build Coastguard Worker    ],
86*38e8c45fSAndroid Build Coastguard Worker}
87*38e8c45fSAndroid Build Coastguard Worker
88*38e8c45fSAndroid Build Coastguard Worker// AIDL files that should be exposed to java
89*38e8c45fSAndroid Build Coastguard Workerfilegroup {
90*38e8c45fSAndroid Build Coastguard Worker    name: "guiconstants_aidl",
91*38e8c45fSAndroid Build Coastguard Worker    srcs: [
92*38e8c45fSAndroid Build Coastguard Worker        "android/gui/DropInputMode.aidl",
93*38e8c45fSAndroid Build Coastguard Worker        "android/gui/StalledTransactionInfo.aidl",
94*38e8c45fSAndroid Build Coastguard Worker        "android/**/TouchOcclusionMode.aidl",
95*38e8c45fSAndroid Build Coastguard Worker        "android/gui/TrustedOverlay.aidl",
96*38e8c45fSAndroid Build Coastguard Worker    ],
97*38e8c45fSAndroid Build Coastguard Worker}
98*38e8c45fSAndroid Build Coastguard Worker
99*38e8c45fSAndroid Build Coastguard Workerfilegroup {
100*38e8c45fSAndroid Build Coastguard Worker    name: "android_gui_aidl",
101*38e8c45fSAndroid Build Coastguard Worker    srcs: [
102*38e8c45fSAndroid Build Coastguard Worker        "android/gui/DisplayInfo.aidl",
103*38e8c45fSAndroid Build Coastguard Worker        "android/gui/FocusRequest.aidl",
104*38e8c45fSAndroid Build Coastguard Worker        "android/gui/InputApplicationInfo.aidl",
105*38e8c45fSAndroid Build Coastguard Worker        "android/gui/IWindowInfosListener.aidl",
106*38e8c45fSAndroid Build Coastguard Worker        "android/gui/IWindowInfosPublisher.aidl",
107*38e8c45fSAndroid Build Coastguard Worker        "android/gui/IWindowInfosReportedListener.aidl",
108*38e8c45fSAndroid Build Coastguard Worker        "android/gui/WindowInfo.aidl",
109*38e8c45fSAndroid Build Coastguard Worker        "android/gui/WindowInfosUpdate.aidl",
110*38e8c45fSAndroid Build Coastguard Worker    ],
111*38e8c45fSAndroid Build Coastguard Worker}
112*38e8c45fSAndroid Build Coastguard Worker
113*38e8c45fSAndroid Build Coastguard Workercc_library_static {
114*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_window_info_static",
115*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
116*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
117*38e8c45fSAndroid Build Coastguard Worker    srcs: [
118*38e8c45fSAndroid Build Coastguard Worker        ":guiconstants_aidl",
119*38e8c45fSAndroid Build Coastguard Worker        ":inputconstants_aidl",
120*38e8c45fSAndroid Build Coastguard Worker        "android/gui/DisplayInfo.aidl",
121*38e8c45fSAndroid Build Coastguard Worker        "android/gui/FocusRequest.aidl",
122*38e8c45fSAndroid Build Coastguard Worker        "android/gui/InputApplicationInfo.aidl",
123*38e8c45fSAndroid Build Coastguard Worker        "android/gui/IWindowInfosListener.aidl",
124*38e8c45fSAndroid Build Coastguard Worker        "android/gui/IWindowInfosPublisher.aidl",
125*38e8c45fSAndroid Build Coastguard Worker        "android/gui/IWindowInfosReportedListener.aidl",
126*38e8c45fSAndroid Build Coastguard Worker        "android/gui/WindowInfosUpdate.aidl",
127*38e8c45fSAndroid Build Coastguard Worker        "android/gui/WindowInfo.aidl",
128*38e8c45fSAndroid Build Coastguard Worker        "DisplayInfo.cpp",
129*38e8c45fSAndroid Build Coastguard Worker        "WindowInfo.cpp",
130*38e8c45fSAndroid Build Coastguard Worker        "WindowInfosUpdate.cpp",
131*38e8c45fSAndroid Build Coastguard Worker    ],
132*38e8c45fSAndroid Build Coastguard Worker
133*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
134*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
135*38e8c45fSAndroid Build Coastguard Worker    ],
136*38e8c45fSAndroid Build Coastguard Worker
137*38e8c45fSAndroid Build Coastguard Worker    local_include_dirs: [
138*38e8c45fSAndroid Build Coastguard Worker        "include",
139*38e8c45fSAndroid Build Coastguard Worker    ],
140*38e8c45fSAndroid Build Coastguard Worker
141*38e8c45fSAndroid Build Coastguard Worker    export_shared_lib_headers: [
142*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
143*38e8c45fSAndroid Build Coastguard Worker    ],
144*38e8c45fSAndroid Build Coastguard Worker
145*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
146*38e8c45fSAndroid Build Coastguard Worker        "libui-types",
147*38e8c45fSAndroid Build Coastguard Worker    ],
148*38e8c45fSAndroid Build Coastguard Worker
149*38e8c45fSAndroid Build Coastguard Worker    aidl: {
150*38e8c45fSAndroid Build Coastguard Worker        export_aidl_headers: true,
151*38e8c45fSAndroid Build Coastguard Worker    },
152*38e8c45fSAndroid Build Coastguard Worker
153*38e8c45fSAndroid Build Coastguard Worker    include_dirs: [
154*38e8c45fSAndroid Build Coastguard Worker        "frameworks/native/include",
155*38e8c45fSAndroid Build Coastguard Worker    ],
156*38e8c45fSAndroid Build Coastguard Worker
157*38e8c45fSAndroid Build Coastguard Worker    target: {
158*38e8c45fSAndroid Build Coastguard Worker        darwin: {
159*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
160*38e8c45fSAndroid Build Coastguard Worker        },
161*38e8c45fSAndroid Build Coastguard Worker    },
162*38e8c45fSAndroid Build Coastguard Worker}
163*38e8c45fSAndroid Build Coastguard Worker
164*38e8c45fSAndroid Build Coastguard Workerfilegroup {
165*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_extra_aidl_files",
166*38e8c45fSAndroid Build Coastguard Worker    srcs: [
167*38e8c45fSAndroid Build Coastguard Worker        "android/gui/DisplayInfo.aidl",
168*38e8c45fSAndroid Build Coastguard Worker        "android/gui/FocusRequest.aidl",
169*38e8c45fSAndroid Build Coastguard Worker        "android/gui/InputApplicationInfo.aidl",
170*38e8c45fSAndroid Build Coastguard Worker        "android/gui/IWindowInfosListener.aidl",
171*38e8c45fSAndroid Build Coastguard Worker        "android/gui/IWindowInfosPublisher.aidl",
172*38e8c45fSAndroid Build Coastguard Worker        "android/gui/IWindowInfosReportedListener.aidl",
173*38e8c45fSAndroid Build Coastguard Worker        "android/gui/StalledTransactionInfo.aidl",
174*38e8c45fSAndroid Build Coastguard Worker        "android/gui/WindowInfo.aidl",
175*38e8c45fSAndroid Build Coastguard Worker        "android/gui/WindowInfosUpdate.aidl",
176*38e8c45fSAndroid Build Coastguard Worker    ],
177*38e8c45fSAndroid Build Coastguard Worker}
178*38e8c45fSAndroid Build Coastguard Worker
179*38e8c45fSAndroid Build Coastguard Workerfilegroup {
180*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_extra_unstructured_aidl_files",
181*38e8c45fSAndroid Build Coastguard Worker    srcs: [
182*38e8c45fSAndroid Build Coastguard Worker        "android/gui/DisplayInfo.aidl",
183*38e8c45fSAndroid Build Coastguard Worker        "android/gui/InputApplicationInfo.aidl",
184*38e8c45fSAndroid Build Coastguard Worker        "android/gui/WindowInfo.aidl",
185*38e8c45fSAndroid Build Coastguard Worker        "android/gui/WindowInfosUpdate.aidl",
186*38e8c45fSAndroid Build Coastguard Worker    ],
187*38e8c45fSAndroid Build Coastguard Worker}
188*38e8c45fSAndroid Build Coastguard Worker
189*38e8c45fSAndroid Build Coastguard Workeraidl_library {
190*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_aidl_hdrs",
191*38e8c45fSAndroid Build Coastguard Worker    hdrs: [":libgui_extra_aidl_files"],
192*38e8c45fSAndroid Build Coastguard Worker}
193*38e8c45fSAndroid Build Coastguard Worker
194*38e8c45fSAndroid Build Coastguard Workeraidl_library {
195*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_extra_unstructured_aidl_hdrs",
196*38e8c45fSAndroid Build Coastguard Worker    hdrs: [":libgui_extra_unstructured_aidl_files"],
197*38e8c45fSAndroid Build Coastguard Worker}
198*38e8c45fSAndroid Build Coastguard Worker
199*38e8c45fSAndroid Build Coastguard Workeraidl_library {
200*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_aidl",
201*38e8c45fSAndroid Build Coastguard Worker    srcs: ["aidl/**/*.aidl"],
202*38e8c45fSAndroid Build Coastguard Worker    strip_import_prefix: "aidl",
203*38e8c45fSAndroid Build Coastguard Worker    deps: [
204*38e8c45fSAndroid Build Coastguard Worker        "libgui_aidl_hdrs",
205*38e8c45fSAndroid Build Coastguard Worker        "libgui_extra_unstructured_aidl_hdrs",
206*38e8c45fSAndroid Build Coastguard Worker    ],
207*38e8c45fSAndroid Build Coastguard Worker}
208*38e8c45fSAndroid Build Coastguard Worker
209*38e8c45fSAndroid Build Coastguard Workerfilegroup {
210*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_frame_event_aidl",
211*38e8c45fSAndroid Build Coastguard Worker    srcs: ["aidl/android/gui/FrameEvent.aidl"],
212*38e8c45fSAndroid Build Coastguard Worker    path: "aidl/",
213*38e8c45fSAndroid Build Coastguard Worker}
214*38e8c45fSAndroid Build Coastguard Worker
215*38e8c45fSAndroid Build Coastguard Workercc_library_static {
216*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_aidl_static",
217*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
218*38e8c45fSAndroid Build Coastguard Worker
219*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
220*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
221*38e8c45fSAndroid Build Coastguard Worker        "libui",
222*38e8c45fSAndroid Build Coastguard Worker    ],
223*38e8c45fSAndroid Build Coastguard Worker
224*38e8c45fSAndroid Build Coastguard Worker    local_include_dirs: [
225*38e8c45fSAndroid Build Coastguard Worker        "include",
226*38e8c45fSAndroid Build Coastguard Worker    ],
227*38e8c45fSAndroid Build Coastguard Worker
228*38e8c45fSAndroid Build Coastguard Worker    include_dirs: [
229*38e8c45fSAndroid Build Coastguard Worker        "frameworks/native/include",
230*38e8c45fSAndroid Build Coastguard Worker    ],
231*38e8c45fSAndroid Build Coastguard Worker
232*38e8c45fSAndroid Build Coastguard Worker    export_shared_lib_headers: [
233*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
234*38e8c45fSAndroid Build Coastguard Worker    ],
235*38e8c45fSAndroid Build Coastguard Worker
236*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
237*38e8c45fSAndroid Build Coastguard Worker        "libui-types",
238*38e8c45fSAndroid Build Coastguard Worker        "libgui_window_info_static",
239*38e8c45fSAndroid Build Coastguard Worker    ],
240*38e8c45fSAndroid Build Coastguard Worker
241*38e8c45fSAndroid Build Coastguard Worker    aidl: {
242*38e8c45fSAndroid Build Coastguard Worker        export_aidl_headers: true,
243*38e8c45fSAndroid Build Coastguard Worker        libs: ["libgui_aidl"],
244*38e8c45fSAndroid Build Coastguard Worker    },
245*38e8c45fSAndroid Build Coastguard Worker}
246*38e8c45fSAndroid Build Coastguard Worker
247*38e8c45fSAndroid Build Coastguard Workerfilegroup {
248*38e8c45fSAndroid Build Coastguard Worker    name: "libgui-sources",
249*38e8c45fSAndroid Build Coastguard Worker    srcs: [
250*38e8c45fSAndroid Build Coastguard Worker        ":framework_native_aidl_binder",
251*38e8c45fSAndroid Build Coastguard Worker        ":framework_native_aidl_gui",
252*38e8c45fSAndroid Build Coastguard Worker        ":inputconstants_aidl",
253*38e8c45fSAndroid Build Coastguard Worker        ":libgui_bufferqueue_sources",
254*38e8c45fSAndroid Build Coastguard Worker
255*38e8c45fSAndroid Build Coastguard Worker        "BitTube.cpp",
256*38e8c45fSAndroid Build Coastguard Worker        "BLASTBufferQueue.cpp",
257*38e8c45fSAndroid Build Coastguard Worker        "BufferItemConsumer.cpp",
258*38e8c45fSAndroid Build Coastguard Worker        "BufferReleaseChannel.cpp",
259*38e8c45fSAndroid Build Coastguard Worker        "Choreographer.cpp",
260*38e8c45fSAndroid Build Coastguard Worker        "CompositorTiming.cpp",
261*38e8c45fSAndroid Build Coastguard Worker        "ConsumerBase.cpp",
262*38e8c45fSAndroid Build Coastguard Worker        "CpuConsumer.cpp",
263*38e8c45fSAndroid Build Coastguard Worker        "DebugEGLImageTracker.cpp",
264*38e8c45fSAndroid Build Coastguard Worker        "DisplayEventDispatcher.cpp",
265*38e8c45fSAndroid Build Coastguard Worker        "DisplayEventReceiver.cpp",
266*38e8c45fSAndroid Build Coastguard Worker        "FenceMonitor.cpp",
267*38e8c45fSAndroid Build Coastguard Worker        "Flags.cpp",
268*38e8c45fSAndroid Build Coastguard Worker        "GLConsumer.cpp",
269*38e8c45fSAndroid Build Coastguard Worker        "IConsumerListener.cpp",
270*38e8c45fSAndroid Build Coastguard Worker        "IGraphicBufferConsumer.cpp",
271*38e8c45fSAndroid Build Coastguard Worker        "IGraphicBufferProducer.cpp",
272*38e8c45fSAndroid Build Coastguard Worker        "IProducerListener.cpp",
273*38e8c45fSAndroid Build Coastguard Worker        "ISurfaceComposer.cpp",
274*38e8c45fSAndroid Build Coastguard Worker        "ITransactionCompletedListener.cpp",
275*38e8c45fSAndroid Build Coastguard Worker        "LayerMetadata.cpp",
276*38e8c45fSAndroid Build Coastguard Worker        "LayerStatePermissions.cpp",
277*38e8c45fSAndroid Build Coastguard Worker        "LayerState.cpp",
278*38e8c45fSAndroid Build Coastguard Worker        "DisplayLuts.cpp",
279*38e8c45fSAndroid Build Coastguard Worker        "OccupancyTracker.cpp",
280*38e8c45fSAndroid Build Coastguard Worker        "StreamSplitter.cpp",
281*38e8c45fSAndroid Build Coastguard Worker        "ScreenCaptureResults.cpp",
282*38e8c45fSAndroid Build Coastguard Worker        "Surface.cpp",
283*38e8c45fSAndroid Build Coastguard Worker        "SurfaceControl.cpp",
284*38e8c45fSAndroid Build Coastguard Worker        "SurfaceComposerClient.cpp",
285*38e8c45fSAndroid Build Coastguard Worker        "SyncFeatures.cpp",
286*38e8c45fSAndroid Build Coastguard Worker        "VsyncEventData.cpp",
287*38e8c45fSAndroid Build Coastguard Worker        "view/Surface.cpp",
288*38e8c45fSAndroid Build Coastguard Worker        "WindowInfosListenerReporter.cpp",
289*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/1.0/B2HProducerListener.cpp",
290*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/1.0/H2BGraphicBufferProducer.cpp",
291*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/2.0/B2HProducerListener.cpp",
292*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/2.0/H2BGraphicBufferProducer.cpp",
293*38e8c45fSAndroid Build Coastguard Worker    ],
294*38e8c45fSAndroid Build Coastguard Worker}
295*38e8c45fSAndroid Build Coastguard Worker
296*38e8c45fSAndroid Build Coastguard Workercc_defaults {
297*38e8c45fSAndroid Build Coastguard Worker    name: "libgui-defaults",
298*38e8c45fSAndroid Build Coastguard Worker    defaults: ["libgui_bufferqueue-defaults"],
299*38e8c45fSAndroid Build Coastguard Worker    srcs: [":libgui-sources"],
300*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
301*38e8c45fSAndroid Build Coastguard Worker        "libgui_aidl_static",
302*38e8c45fSAndroid Build Coastguard Worker        "libgui_window_info_static",
303*38e8c45fSAndroid Build Coastguard Worker        "libguiflags",
304*38e8c45fSAndroid Build Coastguard Worker    ],
305*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
306*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
307*38e8c45fSAndroid Build Coastguard Worker        "libGLESv2",
308*38e8c45fSAndroid Build Coastguard Worker    ],
309*38e8c45fSAndroid Build Coastguard Worker    export_static_lib_headers: [
310*38e8c45fSAndroid Build Coastguard Worker        "libguiflags",
311*38e8c45fSAndroid Build Coastguard Worker    ],
312*38e8c45fSAndroid Build Coastguard Worker}
313*38e8c45fSAndroid Build Coastguard Worker
314*38e8c45fSAndroid Build Coastguard Workercc_library_shared {
315*38e8c45fSAndroid Build Coastguard Worker    name: "libgui",
316*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
317*38e8c45fSAndroid Build Coastguard Worker    double_loadable: true,
318*38e8c45fSAndroid Build Coastguard Worker
319*38e8c45fSAndroid Build Coastguard Worker    defaults: [
320*38e8c45fSAndroid Build Coastguard Worker        "libgui-defaults",
321*38e8c45fSAndroid Build Coastguard Worker    ],
322*38e8c45fSAndroid Build Coastguard Worker
323*38e8c45fSAndroid Build Coastguard Worker    export_static_lib_headers: [
324*38e8c45fSAndroid Build Coastguard Worker        "libgui_aidl_static",
325*38e8c45fSAndroid Build Coastguard Worker        "libgui_window_info_static",
326*38e8c45fSAndroid Build Coastguard Worker    ],
327*38e8c45fSAndroid Build Coastguard Worker
328*38e8c45fSAndroid Build Coastguard Worker    export_shared_lib_headers: [
329*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
330*38e8c45fSAndroid Build Coastguard Worker    ],
331*38e8c45fSAndroid Build Coastguard Worker
332*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
333*38e8c45fSAndroid Build Coastguard Worker        "libgui_aidl_headers",
334*38e8c45fSAndroid Build Coastguard Worker        "jni_headers",
335*38e8c45fSAndroid Build Coastguard Worker    ],
336*38e8c45fSAndroid Build Coastguard Worker
337*38e8c45fSAndroid Build Coastguard Worker    aidl: {
338*38e8c45fSAndroid Build Coastguard Worker        export_aidl_headers: true,
339*38e8c45fSAndroid Build Coastguard Worker    },
340*38e8c45fSAndroid Build Coastguard Worker
341*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
342*38e8c45fSAndroid Build Coastguard Worker        "jni_headers",
343*38e8c45fSAndroid Build Coastguard Worker        "libgui_aidl_headers",
344*38e8c45fSAndroid Build Coastguard Worker    ],
345*38e8c45fSAndroid Build Coastguard Worker
346*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
347*38e8c45fSAndroid Build Coastguard Worker        "libsurfaceflingerflags",
348*38e8c45fSAndroid Build Coastguard Worker    ],
349*38e8c45fSAndroid Build Coastguard Worker
350*38e8c45fSAndroid Build Coastguard Worker    afdo: true,
351*38e8c45fSAndroid Build Coastguard Worker
352*38e8c45fSAndroid Build Coastguard Worker    lto: {
353*38e8c45fSAndroid Build Coastguard Worker        thin: true,
354*38e8c45fSAndroid Build Coastguard Worker    },
355*38e8c45fSAndroid Build Coastguard Worker
356*38e8c45fSAndroid Build Coastguard Worker    cflags: [
357*38e8c45fSAndroid Build Coastguard Worker        "-Wthread-safety",
358*38e8c45fSAndroid Build Coastguard Worker    ],
359*38e8c45fSAndroid Build Coastguard Worker}
360*38e8c45fSAndroid Build Coastguard Worker
361*38e8c45fSAndroid Build Coastguard Worker// Used by media codec services exclusively as a static lib for
362*38e8c45fSAndroid Build Coastguard Worker// core bufferqueue support only.
363*38e8c45fSAndroid Build Coastguard Workercc_library_static {
364*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_bufferqueue_static",
365*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
366*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
367*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
368*38e8c45fSAndroid Build Coastguard Worker        "com.android.media.swcodec",
369*38e8c45fSAndroid Build Coastguard Worker    ],
370*38e8c45fSAndroid Build Coastguard Worker    min_sdk_version: "29",
371*38e8c45fSAndroid Build Coastguard Worker
372*38e8c45fSAndroid Build Coastguard Worker    cflags: [
373*38e8c45fSAndroid Build Coastguard Worker        "-DNO_BINDER",
374*38e8c45fSAndroid Build Coastguard Worker    ],
375*38e8c45fSAndroid Build Coastguard Worker
376*38e8c45fSAndroid Build Coastguard Worker    defaults: ["libgui_bufferqueue-defaults"],
377*38e8c45fSAndroid Build Coastguard Worker
378*38e8c45fSAndroid Build Coastguard Worker    srcs: [
379*38e8c45fSAndroid Build Coastguard Worker        ":libgui_frame_event_aidl",
380*38e8c45fSAndroid Build Coastguard Worker        ":inputconstants_aidl",
381*38e8c45fSAndroid Build Coastguard Worker        ":libgui_bufferqueue_sources",
382*38e8c45fSAndroid Build Coastguard Worker    ],
383*38e8c45fSAndroid Build Coastguard Worker
384*38e8c45fSAndroid Build Coastguard Worker    aidl: {
385*38e8c45fSAndroid Build Coastguard Worker        include_dirs: [
386*38e8c45fSAndroid Build Coastguard Worker            "frameworks/native/libs/gui",
387*38e8c45fSAndroid Build Coastguard Worker        ],
388*38e8c45fSAndroid Build Coastguard Worker    },
389*38e8c45fSAndroid Build Coastguard Worker}
390*38e8c45fSAndroid Build Coastguard Worker
391*38e8c45fSAndroid Build Coastguard Workerfilegroup {
392*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_bufferqueue_sources",
393*38e8c45fSAndroid Build Coastguard Worker    srcs: [
394*38e8c45fSAndroid Build Coastguard Worker        "BatchBufferOps.cpp",
395*38e8c45fSAndroid Build Coastguard Worker        "BufferItem.cpp",
396*38e8c45fSAndroid Build Coastguard Worker        "BufferQueue.cpp",
397*38e8c45fSAndroid Build Coastguard Worker        "BufferQueueConsumer.cpp",
398*38e8c45fSAndroid Build Coastguard Worker        "BufferQueueCore.cpp",
399*38e8c45fSAndroid Build Coastguard Worker        "BufferQueueProducer.cpp",
400*38e8c45fSAndroid Build Coastguard Worker        "BufferQueueThreadState.cpp",
401*38e8c45fSAndroid Build Coastguard Worker        "BufferSlot.cpp",
402*38e8c45fSAndroid Build Coastguard Worker        "FrameRateUtils.cpp",
403*38e8c45fSAndroid Build Coastguard Worker        "FrameTimestamps.cpp",
404*38e8c45fSAndroid Build Coastguard Worker        "GLConsumerUtils.cpp",
405*38e8c45fSAndroid Build Coastguard Worker        "HdrMetadata.cpp",
406*38e8c45fSAndroid Build Coastguard Worker        "IGraphicBufferProducerFlattenables.cpp",
407*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/1.0/Conversion.cpp",
408*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/1.0/H2BProducerListener.cpp",
409*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/1.0/WProducerListener.cpp",
410*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/2.0/B2HGraphicBufferProducer.cpp",
411*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/2.0/H2BProducerListener.cpp",
412*38e8c45fSAndroid Build Coastguard Worker        "bufferqueue/2.0/types.cpp",
413*38e8c45fSAndroid Build Coastguard Worker    ],
414*38e8c45fSAndroid Build Coastguard Worker}
415*38e8c45fSAndroid Build Coastguard Worker
416*38e8c45fSAndroid Build Coastguard Worker// Common build config shared by libgui and libgui_bufferqueue_static.
417*38e8c45fSAndroid Build Coastguard Workercc_defaults {
418*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_bufferqueue-defaults",
419*38e8c45fSAndroid Build Coastguard Worker
420*38e8c45fSAndroid Build Coastguard Worker    defaults: ["android.hardware.graphics.common-ndk_shared"],
421*38e8c45fSAndroid Build Coastguard Worker
422*38e8c45fSAndroid Build Coastguard Worker    cflags: [
423*38e8c45fSAndroid Build Coastguard Worker        "-Wall",
424*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
425*38e8c45fSAndroid Build Coastguard Worker    ],
426*38e8c45fSAndroid Build Coastguard Worker
427*38e8c45fSAndroid Build Coastguard Worker    cppflags: [
428*38e8c45fSAndroid Build Coastguard Worker        "-Wextra",
429*38e8c45fSAndroid Build Coastguard Worker        "-DDEBUG_ONLY_CODE=0",
430*38e8c45fSAndroid Build Coastguard Worker    ],
431*38e8c45fSAndroid Build Coastguard Worker
432*38e8c45fSAndroid Build Coastguard Worker    product_variables: {
433*38e8c45fSAndroid Build Coastguard Worker        eng: {
434*38e8c45fSAndroid Build Coastguard Worker            cppflags: [
435*38e8c45fSAndroid Build Coastguard Worker                "-UDEBUG_ONLY_CODE",
436*38e8c45fSAndroid Build Coastguard Worker                "-DDEBUG_ONLY_CODE=1",
437*38e8c45fSAndroid Build Coastguard Worker            ],
438*38e8c45fSAndroid Build Coastguard Worker        },
439*38e8c45fSAndroid Build Coastguard Worker    },
440*38e8c45fSAndroid Build Coastguard Worker
441*38e8c45fSAndroid Build Coastguard Worker    whole_static_libs: [
442*38e8c45fSAndroid Build Coastguard Worker        "libLibGuiProperties",
443*38e8c45fSAndroid Build Coastguard Worker    ],
444*38e8c45fSAndroid Build Coastguard Worker
445*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
446*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
447*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
448*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
449*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
450*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
451*38e8c45fSAndroid Build Coastguard Worker        "libbase",
452*38e8c45fSAndroid Build Coastguard Worker        "libcutils",
453*38e8c45fSAndroid Build Coastguard Worker        "libEGL",
454*38e8c45fSAndroid Build Coastguard Worker        "libhidlbase",
455*38e8c45fSAndroid Build Coastguard Worker        "liblog",
456*38e8c45fSAndroid Build Coastguard Worker        "libnativewindow",
457*38e8c45fSAndroid Build Coastguard Worker        "libsync",
458*38e8c45fSAndroid Build Coastguard Worker        "libui",
459*38e8c45fSAndroid Build Coastguard Worker        "libutils",
460*38e8c45fSAndroid Build Coastguard Worker    ],
461*38e8c45fSAndroid Build Coastguard Worker
462*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
463*38e8c45fSAndroid Build Coastguard Worker        "libbinderthreadstateutils",
464*38e8c45fSAndroid Build Coastguard Worker    ],
465*38e8c45fSAndroid Build Coastguard Worker
466*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
467*38e8c45fSAndroid Build Coastguard Worker        "libgui_headers",
468*38e8c45fSAndroid Build Coastguard Worker        "libnativebase_headers",
469*38e8c45fSAndroid Build Coastguard Worker    ],
470*38e8c45fSAndroid Build Coastguard Worker
471*38e8c45fSAndroid Build Coastguard Worker    include_dirs: [
472*38e8c45fSAndroid Build Coastguard Worker        "frameworks/native/include",
473*38e8c45fSAndroid Build Coastguard Worker    ],
474*38e8c45fSAndroid Build Coastguard Worker
475*38e8c45fSAndroid Build Coastguard Worker    export_shared_lib_headers: [
476*38e8c45fSAndroid Build Coastguard Worker        "libEGL",
477*38e8c45fSAndroid Build Coastguard Worker        "libnativewindow",
478*38e8c45fSAndroid Build Coastguard Worker        "libui",
479*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
480*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
481*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
482*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
483*38e8c45fSAndroid Build Coastguard Worker        "[email protected]",
484*38e8c45fSAndroid Build Coastguard Worker    ],
485*38e8c45fSAndroid Build Coastguard Worker
486*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
487*38e8c45fSAndroid Build Coastguard Worker        "libgui_headers",
488*38e8c45fSAndroid Build Coastguard Worker    ],
489*38e8c45fSAndroid Build Coastguard Worker
490*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: [
491*38e8c45fSAndroid Build Coastguard Worker        "include",
492*38e8c45fSAndroid Build Coastguard Worker    ],
493*38e8c45fSAndroid Build Coastguard Worker}
494*38e8c45fSAndroid Build Coastguard Worker
495*38e8c45fSAndroid Build Coastguard Worker// GMocks for use by external code
496*38e8c45fSAndroid Build Coastguard Workercc_library_static {
497*38e8c45fSAndroid Build Coastguard Worker    name: "libgui_mocks",
498*38e8c45fSAndroid Build Coastguard Worker    vendor_available: false,
499*38e8c45fSAndroid Build Coastguard Worker
500*38e8c45fSAndroid Build Coastguard Worker    defaults: ["libgui_bufferqueue-defaults"],
501*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
502*38e8c45fSAndroid Build Coastguard Worker        "libgtest",
503*38e8c45fSAndroid Build Coastguard Worker        "libgmock",
504*38e8c45fSAndroid Build Coastguard Worker        "libguiflags",
505*38e8c45fSAndroid Build Coastguard Worker    ],
506*38e8c45fSAndroid Build Coastguard Worker
507*38e8c45fSAndroid Build Coastguard Worker    srcs: [
508*38e8c45fSAndroid Build Coastguard Worker        ":libgui_frame_event_aidl",
509*38e8c45fSAndroid Build Coastguard Worker        "mock/GraphicBufferConsumer.cpp",
510*38e8c45fSAndroid Build Coastguard Worker        "mock/GraphicBufferProducer.cpp",
511*38e8c45fSAndroid Build Coastguard Worker    ],
512*38e8c45fSAndroid Build Coastguard Worker}
513*38e8c45fSAndroid Build Coastguard Worker
514*38e8c45fSAndroid Build Coastguard Workersubdirs = ["tests"]
515