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_SRC_FILES := \
40	IGraphicBufferConsumer.cpp \
41	IConsumerListener.cpp \
42	BitTube.cpp \
43	BufferItem.cpp \
44	BufferItemConsumer.cpp \
45	BufferQueue.cpp \
46	BufferQueueConsumer.cpp \
47	BufferQueueCore.cpp \
48	BufferQueueProducer.cpp \
49	BufferSlot.cpp \
50	ConsumerBase.cpp \
51	CpuConsumer.cpp \
52	DisplayEventReceiver.cpp \
53	GLConsumer.cpp \
54	GraphicBufferAlloc.cpp \
55	GuiConfig.cpp \
56	IDisplayEventConnection.cpp \
57	IGraphicBufferAlloc.cpp \
58	IGraphicBufferProducer.cpp \
59	IProducerListener.cpp \
60	ISensorEventConnection.cpp \
61	ISensorServer.cpp \
62	ISurfaceComposer.cpp \
63	ISurfaceComposerClient.cpp \
64	LayerState.cpp \
65	Sensor.cpp \
66	SensorEventQueue.cpp \
67	SensorManager.cpp \
68	StreamSplitter.cpp \
69	Surface.cpp \
70	SurfaceControl.cpp \
71	SurfaceComposerClient.cpp \
72	SyncFeatures.cpp \
73
74LOCAL_SHARED_LIBRARIES := \
75	libbinder \
76	libcutils \
77	libEGL \
78	libGLESv2 \
79	libsync \
80	libui \
81	libutils \
82	liblog
83
84
85LOCAL_MODULE := libgui
86
87ifeq ($(TARGET_BOARD_PLATFORM), tegra)
88	LOCAL_CFLAGS += -DDONT_USE_FENCE_SYNC
89endif
90ifeq ($(TARGET_BOARD_PLATFORM), tegra3)
91	LOCAL_CFLAGS += -DDONT_USE_FENCE_SYNC
92endif
93
94include $(BUILD_SHARED_LIBRARY)
95
96ifeq (,$(ONE_SHOT_MAKEFILE))
97include $(call first-makefiles-under,$(LOCAL_PATH))
98endif
99