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 15LOCAL_PATH := $(call my-dir) 16include $(CLEAR_VARS) 17 18LOCAL_CLANG := true 19LOCAL_CPPFLAGS := -std=c++1y -Weverything -Werror 20 21# The static constructors and destructors in this library have not been noted to 22# introduce significant overheads 23LOCAL_CPPFLAGS += -Wno-exit-time-destructors 24LOCAL_CPPFLAGS += -Wno-global-constructors 25 26# We only care about compiling as C++14 27LOCAL_CPPFLAGS += -Wno-c++98-compat-pedantic 28 29# We don't need to enumerate every case in a switch as long as a default case 30# is present 31LOCAL_CPPFLAGS += -Wno-switch-enum 32 33# Allow calling variadic macros without a __VA_ARGS__ list 34LOCAL_CPPFLAGS += -Wno-gnu-zero-variadic-macro-arguments 35 36# Don't warn about struct padding 37LOCAL_CPPFLAGS += -Wno-padded 38 39LOCAL_CPPFLAGS += -DDEBUG_ONLY_CODE=$(if $(filter userdebug eng,$(TARGET_BUILD_VARIANT)),1,0) 40 41LOCAL_SRC_FILES := \ 42 IGraphicBufferConsumer.cpp \ 43 IConsumerListener.cpp \ 44 BitTube.cpp \ 45 BufferItem.cpp \ 46 BufferItemConsumer.cpp \ 47 BufferQueue.cpp \ 48 BufferQueueConsumer.cpp \ 49 BufferQueueCore.cpp \ 50 BufferQueueProducer.cpp \ 51 BufferSlot.cpp \ 52 ConsumerBase.cpp \ 53 CpuConsumer.cpp \ 54 DisplayEventReceiver.cpp \ 55 GLConsumer.cpp \ 56 GraphicBufferAlloc.cpp \ 57 GuiConfig.cpp \ 58 IDisplayEventConnection.cpp \ 59 IGraphicBufferAlloc.cpp \ 60 IGraphicBufferProducer.cpp \ 61 IProducerListener.cpp \ 62 ISensorEventConnection.cpp \ 63 ISensorServer.cpp \ 64 ISurfaceComposer.cpp \ 65 ISurfaceComposerClient.cpp \ 66 LayerState.cpp \ 67 Sensor.cpp \ 68 SensorEventQueue.cpp \ 69 SensorManager.cpp \ 70 StreamSplitter.cpp \ 71 Surface.cpp \ 72 SurfaceControl.cpp \ 73 SurfaceComposerClient.cpp \ 74 SyncFeatures.cpp \ 75 76LOCAL_SHARED_LIBRARIES := \ 77 libbinder \ 78 libcutils \ 79 libEGL \ 80 libGLESv2 \ 81 libsync \ 82 libui \ 83 libutils \ 84 liblog 85 86 87LOCAL_MODULE := libgui 88 89ifeq ($(TARGET_BOARD_PLATFORM), tegra) 90 LOCAL_CFLAGS += -DDONT_USE_FENCE_SYNC 91endif 92ifeq ($(TARGET_BOARD_PLATFORM), tegra3) 93 LOCAL_CFLAGS += -DDONT_USE_FENCE_SYNC 94endif 95 96include $(BUILD_SHARED_LIBRARY) 97 98ifeq (,$(ONE_SHOT_MAKEFILE)) 99include $(call first-makefiles-under,$(LOCAL_PATH)) 100endif 101