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