|  | // Copyright 2010 The Android Open Source Project | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  | cc_library_headers { | 
|  | name: "libgui_headers", | 
|  | vendor_available: true, | 
|  | export_include_dirs: ["include"], | 
|  | } | 
|  |  | 
|  | cc_library_shared { | 
|  | name: "libgui", | 
|  | vendor_available: false, | 
|  | vndk: { | 
|  | enabled: true, | 
|  | }, | 
|  | double_loadable: true, | 
|  |  | 
|  | clang: true, | 
|  | cflags: [ | 
|  | "-Wall", | 
|  | "-Werror", | 
|  | ], | 
|  | cppflags: [ | 
|  | "-Weverything", | 
|  |  | 
|  | // The static constructors and destructors in this library have not been noted to | 
|  | // introduce significant overheads | 
|  | "-Wno-exit-time-destructors", | 
|  | "-Wno-global-constructors", | 
|  |  | 
|  | // We only care about compiling as C++14 | 
|  | "-Wno-c++98-compat-pedantic", | 
|  |  | 
|  | // We don't need to enumerate every case in a switch as long as a default case | 
|  | // is present | 
|  | "-Wno-switch-enum", | 
|  |  | 
|  | // Allow calling variadic macros without a __VA_ARGS__ list | 
|  | "-Wno-gnu-zero-variadic-macro-arguments", | 
|  |  | 
|  | // Don't warn about struct padding | 
|  | "-Wno-padded", | 
|  |  | 
|  | // We are aware of the risks inherent in comparing floats for equality | 
|  | "-Wno-float-equal", | 
|  |  | 
|  | // Pure abstract classes trigger this warning | 
|  | "-Wno-weak-vtables", | 
|  |  | 
|  | // Allow four-character integer literals | 
|  | "-Wno-four-char-constants", | 
|  |  | 
|  | // Allow documentation warnings | 
|  | "-Wno-documentation", | 
|  |  | 
|  | // Allow implicit instantiation for templated class function | 
|  | "-Wno-undefined-func-template", | 
|  |  | 
|  | // Allow explicitly marking struct as packed even when unnecessary | 
|  | "-Wno-packed", | 
|  |  | 
|  | "-DDEBUG_ONLY_CODE=0", | 
|  | ], | 
|  |  | 
|  | product_variables: { | 
|  | eng: { | 
|  | cppflags: [ | 
|  | "-UDEBUG_ONLY_CODE", | 
|  | "-DDEBUG_ONLY_CODE=1", | 
|  | ], | 
|  | }, | 
|  | }, | 
|  |  | 
|  | srcs: [ | 
|  | "BitTube.cpp", | 
|  | "BufferHubConsumer.cpp", | 
|  | "BufferHubProducer.cpp", | 
|  | "BufferItem.cpp", | 
|  | "BufferItemConsumer.cpp", | 
|  | "BufferQueue.cpp", | 
|  | "BufferQueueConsumer.cpp", | 
|  | "BufferQueueCore.cpp", | 
|  | "BufferQueueProducer.cpp", | 
|  | "BufferSlot.cpp", | 
|  | "ConsumerBase.cpp", | 
|  | "CpuConsumer.cpp", | 
|  | "DisplayEventReceiver.cpp", | 
|  | "FrameTimestamps.cpp", | 
|  | "GLConsumer.cpp", | 
|  | "GuiConfig.cpp", | 
|  | "HdrMetadata.cpp", | 
|  | "IDisplayEventConnection.cpp", | 
|  | "IConsumerListener.cpp", | 
|  | "IGraphicBufferConsumer.cpp", | 
|  | "IGraphicBufferProducer.cpp", | 
|  | "IProducerListener.cpp", | 
|  | "IRegionSamplingListener.cpp", | 
|  | "ISurfaceComposer.cpp", | 
|  | "ISurfaceComposerClient.cpp", | 
|  | "ITransactionCompletedListener.cpp", | 
|  | "LayerDebugInfo.cpp", | 
|  | "LayerMetadata.cpp", | 
|  | "LayerState.cpp", | 
|  | "OccupancyTracker.cpp", | 
|  | "StreamSplitter.cpp", | 
|  | "Surface.cpp", | 
|  | "SurfaceControl.cpp", | 
|  | "SurfaceComposerClient.cpp", | 
|  | "SyncFeatures.cpp", | 
|  | "view/Surface.cpp", | 
|  | "bufferqueue/1.0/B2HProducerListener.cpp", | 
|  | "bufferqueue/1.0/H2BGraphicBufferProducer.cpp", | 
|  | ], | 
|  |  | 
|  | shared_libs: [ | 
|  | "android.frameworks.bufferhub@1.0", | 
|  | "android.hardware.graphics.common@1.1", | 
|  | "libbase", | 
|  | "libsync", | 
|  | "libbinder", | 
|  | "libbufferhub", | 
|  | "libbufferhubqueue", // TODO(b/70046255): Remove this once BufferHub is integrated into libgui. | 
|  | "libpdx_default_transport", | 
|  | "libcutils", | 
|  | "libEGL", | 
|  | "libGLESv2", | 
|  | "libui", | 
|  | "libutils", | 
|  | "libnativewindow", | 
|  | "liblog", | 
|  | "libinput", | 
|  | "libhidlbase", | 
|  | "libhidltransport", | 
|  | "android.hidl.token@1.0-utils", | 
|  | "android.hardware.graphics.bufferqueue@1.0", | 
|  | ], | 
|  |  | 
|  | // bufferhub is not used when building libgui for vendors | 
|  | target: { | 
|  | vendor: { | 
|  | cflags: ["-DNO_BUFFERHUB", "-DNO_INPUT"], | 
|  | exclude_srcs: [ | 
|  | "BufferHubConsumer.cpp", | 
|  | "BufferHubProducer.cpp", | 
|  | ], | 
|  | exclude_shared_libs: [ | 
|  | "android.frameworks.bufferhub@1.0", | 
|  | "libbufferhub", | 
|  | "libbufferhubqueue", | 
|  | "libpdx_default_transport", | 
|  | "libinput" | 
|  | ], | 
|  | }, | 
|  | }, | 
|  |  | 
|  | header_libs: [ | 
|  | "libdvr_headers", | 
|  | "libnativebase_headers", | 
|  | "libgui_headers", | 
|  | "libpdx_headers", | 
|  | ], | 
|  |  | 
|  | export_shared_lib_headers: [ | 
|  | "libbinder", | 
|  | "libEGL", | 
|  | "libnativewindow", | 
|  | "libui", | 
|  | "android.hidl.token@1.0-utils", | 
|  | "android.hardware.graphics.bufferqueue@1.0", | 
|  | "android.hardware.graphics.common@1.1", | 
|  | ], | 
|  |  | 
|  | export_header_lib_headers: [ | 
|  | "libgui_headers", | 
|  | ], | 
|  |  | 
|  | export_include_dirs: [ | 
|  | "include", | 
|  | ], | 
|  | } | 
|  |  | 
|  | subdirs = ["tests"] |