1// Copyright 2010 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14package { 15 // See: http://go/android-license-faq 16 // A large-scale-change added 'default_applicable_licenses' to import 17 // all of the 'license_kinds' from "frameworks_native_license" 18 // to get the below license kinds: 19 // SPDX-license-identifier-Apache-2.0 20 default_applicable_licenses: ["frameworks_native_license"], 21} 22 23cc_library_headers { 24 name: "libgui_headers", 25 vendor_available: true, 26 export_include_dirs: ["include"], 27 28 // we must build this module to get the required header as that is generated 29 export_shared_lib_headers: [ 30 "android.hidl.token@1.0-utils", 31 "android.hardware.graphics.bufferqueue@1.0", 32 "android.hardware.graphics.bufferqueue@2.0", 33 ], 34 shared_libs: [ 35 "android.hidl.token@1.0-utils", 36 "android.hardware.graphics.bufferqueue@1.0", 37 "android.hardware.graphics.bufferqueue@2.0", 38 ], 39 min_sdk_version: "29", 40} 41 42cc_library_headers { 43 name: "libgui_aidl_headers", 44 vendor_available: true, 45 static_libs: [ 46 "libgui_aidl_static", 47 ], 48 49 export_static_lib_headers: [ 50 "libgui_aidl_static", 51 ], 52} 53 54filegroup { 55 name: "libgui_aidl", 56 srcs: ["aidl/**/*.aidl"], 57 path: "aidl/", 58} 59 60cc_library_static { 61 name: "libgui_aidl_static", 62 vendor_available: true, 63 srcs: [ 64 ":libgui_aidl", 65 ], 66 67 shared_libs: [ 68 "libbinder", 69 "libui", 70 ], 71 72 local_include_dirs: [ 73 "include", 74 ], 75 76 export_shared_lib_headers: [ 77 "libbinder", 78 ], 79 80 aidl: { 81 export_aidl_headers: true 82 } 83} 84 85 86cc_library_shared { 87 name: "libgui", 88 vendor_available: true, 89 vndk: { 90 enabled: true, 91 private: true, 92 }, 93 double_loadable: true, 94 95 defaults: ["libgui_bufferqueue-defaults"], 96 97 static_libs: [ 98 "libgui_aidl_static", 99 ], 100 export_static_lib_headers: [ 101 "libgui_aidl_static", 102 ], 103 104 srcs: [ 105 ":framework_native_aidl", 106 ":inputconstants_aidl", 107 ":libgui_bufferqueue_sources", 108 109 "BitTube.cpp", 110 "BLASTBufferQueue.cpp", 111 "BufferHubConsumer.cpp", 112 "BufferHubProducer.cpp", 113 "BufferItemConsumer.cpp", 114 "ConsumerBase.cpp", 115 "CpuConsumer.cpp", 116 "DebugEGLImageTracker.cpp", 117 "DisplayEventDispatcher.cpp", 118 "DisplayEventReceiver.cpp", 119 "FrameTimelineInfo.cpp", 120 "GLConsumer.cpp", 121 "IConsumerListener.cpp", 122 "IDisplayEventConnection.cpp", 123 "IGraphicBufferConsumer.cpp", 124 "IGraphicBufferProducer.cpp", 125 "IProducerListener.cpp", 126 "IRegionSamplingListener.cpp", 127 "ISurfaceComposer.cpp", 128 "ISurfaceComposerClient.cpp", 129 "ITransactionCompletedListener.cpp", 130 "LayerDebugInfo.cpp", 131 "LayerMetadata.cpp", 132 "LayerState.cpp", 133 "OccupancyTracker.cpp", 134 "StreamSplitter.cpp", 135 "ScreenCaptureResults.cpp", 136 "Surface.cpp", 137 "SurfaceControl.cpp", 138 "SurfaceComposerClient.cpp", 139 "SyncFeatures.cpp", 140 "TransactionTracing.cpp", 141 "view/Surface.cpp", 142 "bufferqueue/1.0/B2HProducerListener.cpp", 143 "bufferqueue/1.0/H2BGraphicBufferProducer.cpp", 144 "bufferqueue/2.0/B2HProducerListener.cpp", 145 "bufferqueue/2.0/H2BGraphicBufferProducer.cpp", 146 ], 147 148 shared_libs: [ 149 "android.frameworks.bufferhub@1.0", 150 "libbinder", 151 "libbufferhub", 152 "libbufferhubqueue", // TODO(b/70046255): Remove this once BufferHub is integrated into libgui. 153 "libinput", 154 "libpdx_default_transport", 155 ], 156 157 export_shared_lib_headers: [ 158 "libbinder", 159 "libinput", 160 ], 161 162 export_header_lib_headers: [ 163 "libgui_aidl_headers", 164 ], 165 166 // bufferhub is not used when building libgui for vendors 167 target: { 168 vendor: { 169 cflags: [ 170 "-DNO_BUFFERHUB", 171 "-DNO_INPUT", 172 ], 173 exclude_srcs: [ 174 "BufferHubConsumer.cpp", 175 "BufferHubProducer.cpp", 176 ], 177 exclude_shared_libs: [ 178 "android.frameworks.bufferhub@1.0", 179 "libbufferhub", 180 "libbufferhubqueue", 181 "libinput", 182 "libpdx_default_transport", 183 ], 184 }, 185 }, 186 187 aidl: { 188 export_aidl_headers: true, 189 }, 190 191 header_libs: [ 192 "libdvr_headers", 193 "libgui_aidl_headers", 194 "libpdx_headers", 195 ], 196 197 pgo: { 198 sampling: true, 199 profile_file: "libgui/libgui.profdata", 200 }, 201 202 lto: { 203 thin: true, 204 }, 205} 206 207// Used by media codec services exclusively as a static lib for 208// core bufferqueue support only. 209cc_library_static { 210 name: "libgui_bufferqueue_static", 211 vendor_available: true, 212 apex_available: [ 213 "//apex_available:platform", 214 "com.android.media.swcodec", 215 ], 216 min_sdk_version: "29", 217 218 cflags: [ 219 "-DNO_BUFFERHUB", 220 "-DNO_BINDER", 221 ], 222 223 defaults: ["libgui_bufferqueue-defaults"], 224 225 srcs: [ 226 ":inputconstants_aidl", 227 ":libgui_bufferqueue_sources", 228 ":libgui_aidl", 229 ], 230} 231 232filegroup { 233 name: "libgui_bufferqueue_sources", 234 srcs: [ 235 "BatchBufferOps.cpp", 236 "BufferItem.cpp", 237 "BufferQueue.cpp", 238 "BufferQueueConsumer.cpp", 239 "BufferQueueCore.cpp", 240 "BufferQueueProducer.cpp", 241 "BufferQueueThreadState.cpp", 242 "BufferSlot.cpp", 243 "FrameTimestamps.cpp", 244 "GLConsumerUtils.cpp", 245 "HdrMetadata.cpp", 246 "IGraphicBufferProducerFlattenables.cpp", 247 "bufferqueue/1.0/Conversion.cpp", 248 "bufferqueue/1.0/H2BProducerListener.cpp", 249 "bufferqueue/1.0/WProducerListener.cpp", 250 "bufferqueue/2.0/B2HGraphicBufferProducer.cpp", 251 "bufferqueue/2.0/H2BProducerListener.cpp", 252 "bufferqueue/2.0/types.cpp", 253 ], 254} 255 256// Common build config shared by libgui and libgui_bufferqueue_static. 257cc_defaults { 258 name: "libgui_bufferqueue-defaults", 259 260 clang: true, 261 cflags: [ 262 "-Wall", 263 "-Werror", 264 ], 265 266 cppflags: [ 267 "-Wextra", 268 "-DDEBUG_ONLY_CODE=0", 269 ], 270 271 product_variables: { 272 eng: { 273 cppflags: [ 274 "-UDEBUG_ONLY_CODE", 275 "-DDEBUG_ONLY_CODE=1", 276 ], 277 }, 278 }, 279 280 whole_static_libs: [ 281 "LibGuiProperties", 282 ], 283 284 shared_libs: [ 285 "android.hardware.graphics.bufferqueue@1.0", 286 "android.hardware.graphics.bufferqueue@2.0", 287 "android.hardware.graphics.common@1.1", 288 "android.hardware.graphics.common@1.2", 289 "android.hidl.token@1.0-utils", 290 "libbase", 291 "libcutils", 292 "libEGL", 293 "libGLESv2", 294 "libhidlbase", 295 "liblog", 296 "libnativewindow", 297 "libsync", 298 "libui", 299 "libutils", 300 "libvndksupport", 301 ], 302 303 static_libs: [ 304 "libbinderthreadstateutils", 305 ], 306 307 header_libs: [ 308 "libgui_headers", 309 "libnativebase_headers", 310 ], 311 312 include_dirs: [ 313 "frameworks/native/include", 314 ], 315 316 export_shared_lib_headers: [ 317 "libEGL", 318 "libnativewindow", 319 "libui", 320 "android.hardware.graphics.bufferqueue@1.0", 321 "android.hardware.graphics.bufferqueue@2.0", 322 "android.hardware.graphics.common@1.1", 323 "android.hardware.graphics.common@1.2", 324 "android.hidl.token@1.0-utils", 325 ], 326 327 export_header_lib_headers: [ 328 "libgui_headers", 329 ], 330 331 export_include_dirs: [ 332 "include", 333 ], 334} 335 336// GMocks for use by external code 337cc_library_static { 338 name: "libgui_mocks", 339 vendor_available: false, 340 341 defaults: ["libgui_bufferqueue-defaults"], 342 static_libs: [ 343 "libgtest", 344 "libgmock", 345 ], 346 347 srcs: [ 348 "mock/GraphicBufferConsumer.cpp", 349 "mock/GraphicBufferProducer.cpp", 350 ], 351} 352 353subdirs = ["tests"] 354