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. 14 cc_library_headers { 15 name: "libgui_headers", 16 vendor_available: true, 17 export_include_dirs: ["include"], 18 } 19 20 cc_library_shared { 21 name: "libgui", 22 vendor_available: true, 23 vndk: { 24 enabled: true, 25 }, 26 27 clang: true, 28 cppflags: [ 29 "-Weverything", 30 "-Werror", 31 32 // The static constructors and destructors in this library have not been noted to 33 // introduce significant overheads 34 "-Wno-exit-time-destructors", 35 "-Wno-global-constructors", 36 37 // We only care about compiling as C++14 38 "-Wno-c++98-compat-pedantic", 39 40 // We don't need to enumerate every case in a switch as long as a default case 41 // is present 42 "-Wno-switch-enum", 43 44 // Allow calling variadic macros without a __VA_ARGS__ list 45 "-Wno-gnu-zero-variadic-macro-arguments", 46 47 // Don't warn about struct padding 48 "-Wno-padded", 49 50 // We are aware of the risks inherent in comparing floats for equality 51 "-Wno-float-equal", 52 53 // Pure abstract classes trigger this warning 54 "-Wno-weak-vtables", 55 56 // Allow four-character integer literals 57 "-Wno-four-char-constants", 58 59 // Allow documentation warnings 60 "-Wno-documentation", 61 62 "-DDEBUG_ONLY_CODE=0", 63 ], 64 65 product_variables: { 66 brillo: { 67 cflags: ["-DHAVE_NO_SURFACE_FLINGER"], 68 }, 69 eng: { 70 cppflags: [ 71 "-UDEBUG_ONLY_CODE", 72 "-DDEBUG_ONLY_CODE=1", 73 ], 74 }, 75 }, 76 77 srcs: [ 78 "BitTube.cpp", 79 "BufferItem.cpp", 80 "BufferItemConsumer.cpp", 81 "BufferQueue.cpp", 82 "BufferQueueConsumer.cpp", 83 "BufferQueueCore.cpp", 84 "BufferQueueProducer.cpp", 85 "BufferSlot.cpp", 86 "ConsumerBase.cpp", 87 "CpuConsumer.cpp", 88 "DisplayEventReceiver.cpp", 89 "FrameTimestamps.cpp", 90 "GLConsumer.cpp", 91 "GuiConfig.cpp", 92 "IDisplayEventConnection.cpp", 93 "IConsumerListener.cpp", 94 "IGraphicBufferConsumer.cpp", 95 "IGraphicBufferProducer.cpp", 96 "IProducerListener.cpp", 97 "ISurfaceComposer.cpp", 98 "ISurfaceComposerClient.cpp", 99 "LayerState.cpp", 100 "OccupancyTracker.cpp", 101 "StreamSplitter.cpp", 102 "Surface.cpp", 103 "SurfaceControl.cpp", 104 "SurfaceComposerClient.cpp", 105 "SyncFeatures.cpp", 106 "view/Surface.cpp", 107 "bufferqueue/1.0/B2HProducerListener.cpp", 108 "bufferqueue/1.0/H2BGraphicBufferProducer.cpp" 109 ], 110 111 shared_libs: [ 112 "libsync", 113 "libbinder", 114 "libcutils", 115 "libEGL", 116 "libGLESv2", 117 "libui", 118 "libutils", 119 "libnativewindow", 120 "liblog", 121 "libhidlbase", 122 "libhidltransport", 123 "android.hidl.token (a] 1.0-utils", 124 "android.hardware.graphics.bufferqueue (a] 1.0", 125 "android.hardware.configstore (a] 1.0", 126 "android.hardware.configstore-utils", 127 ], 128 129 header_libs: [ 130 "libnativebase_headers", 131 "libgui_headers", 132 ], 133 134 export_shared_lib_headers: [ 135 "libbinder", 136 "libEGL", 137 "libnativewindow", 138 "libui", 139 "android.hidl.token (a] 1.0-utils", 140 "android.hardware.graphics.bufferqueue (a] 1.0", 141 ], 142 143 export_header_lib_headers: [ 144 "libgui_headers", 145 ], 146 147 export_include_dirs: [ 148 "include", 149 ], 150 } 151 152 subdirs = ["tests"] 153