• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1cc_defaults {
2    name: "surfaceflinger_defaults",
3    cflags: [
4        "-Wall",
5        "-Werror",
6        "-Wformat",
7        "-Wthread-safety",
8        "-Wunused",
9        "-Wunreachable-code",
10    ],
11}
12
13cc_defaults {
14    name: "libsurfaceflinger_defaults",
15    defaults: ["surfaceflinger_defaults"],
16    cflags: [
17        "-DLOG_TAG=\"SurfaceFlinger\"",
18        "-DGL_GLEXT_PROTOTYPES",
19        "-DEGL_EGLEXT_PROTOTYPES",
20    ],
21    shared_libs: [
22        "android.frameworks.vr.composer@1.0",
23        "android.hardware.configstore-utils",
24        "android.hardware.configstore@1.0",
25        "android.hardware.configstore@1.1",
26        "android.hardware.graphics.allocator@2.0",
27        "android.hardware.graphics.allocator@3.0",
28        "android.hardware.graphics.common@1.2",
29        "android.hardware.graphics.composer@2.1",
30        "android.hardware.graphics.composer@2.2",
31        "android.hardware.graphics.composer@2.3",
32        "android.hardware.power@1.0",
33        "android.hardware.power@1.3",
34        "libbase",
35        "libbinder",
36        "libbufferhubqueue",
37        "libcutils",
38        "libdl",
39        "libEGL",
40        "libfmq",
41        "libGLESv1_CM",
42        "libGLESv2",
43        "libgui",
44        "libhardware",
45        "libhidlbase",
46        "libhidltransport",
47        "libhwbinder",
48        "liblayers_proto",
49        "liblog",
50        "libnativewindow",
51        "libpdx_default_transport",
52        "libprocessgroup",
53        "libprotobuf-cpp-lite",
54        "libsync",
55        "libtimestats_proto",
56        "libui",
57        "libinput",
58        "libutils",
59        "libSurfaceFlingerProp",
60    ],
61    static_libs: [
62        "libcompositionengine",
63        "librenderengine",
64        "libserviceutils",
65        "libtrace_proto",
66        "libvr_manager",
67        "libvrflinger",
68    ],
69    header_libs: [
70        "android.hardware.graphics.composer@2.1-command-buffer",
71        "android.hardware.graphics.composer@2.2-command-buffer",
72        "android.hardware.graphics.composer@2.3-command-buffer",
73    ],
74    export_static_lib_headers: [
75        "libcompositionengine",
76        "librenderengine",
77        "libserviceutils",
78    ],
79    export_shared_lib_headers: [
80        "android.hardware.graphics.allocator@2.0",
81        "android.hardware.graphics.allocator@3.0",
82        "android.hardware.graphics.common@1.2",
83        "android.hardware.graphics.composer@2.1",
84        "android.hardware.graphics.composer@2.2",
85        "android.hardware.graphics.composer@2.3",
86        "android.hardware.power@1.3",
87        "libhidlbase",
88        "libhidltransport",
89        "libhwbinder",
90    ],
91}
92
93cc_defaults {
94    name: "libsurfaceflinger_production_defaults",
95    defaults: ["libsurfaceflinger_defaults"],
96    cflags: [
97        "-fvisibility=hidden",
98        "-fwhole-program-vtables", // requires ThinLTO
99    ],
100    lto: {
101        thin: true,
102    },
103}
104
105cc_library_headers {
106    name: "libsurfaceflinger_headers",
107    export_include_dirs: ["."],
108    static_libs: ["libserviceutils"],
109    export_static_lib_headers: ["libserviceutils"],
110}
111
112filegroup {
113    name: "libsurfaceflinger_sources",
114    srcs: [
115        "BufferLayer.cpp",
116        "BufferLayerConsumer.cpp",
117        "BufferQueueLayer.cpp",
118        "BufferStateLayer.cpp",
119        "ClientCache.cpp",
120        "Client.cpp",
121        "ColorLayer.cpp",
122        "ContainerLayer.cpp",
123        "DisplayDevice.cpp",
124        "DisplayHardware/ComposerHal.cpp",
125        "DisplayHardware/DisplayIdentification.cpp",
126        "DisplayHardware/FramebufferSurface.cpp",
127        "DisplayHardware/HWC2.cpp",
128        "DisplayHardware/HWComposer.cpp",
129        "DisplayHardware/PowerAdvisor.cpp",
130        "DisplayHardware/VirtualDisplaySurface.cpp",
131        "Effects/Daltonizer.cpp",
132        "EventLog/EventLog.cpp",
133        "FrameTracker.cpp",
134        "Layer.cpp",
135        "LayerProtoHelper.cpp",
136        "LayerRejecter.cpp",
137        "LayerStats.cpp",
138        "LayerVector.cpp",
139        "MonitoredProducer.cpp",
140        "NativeWindowSurface.cpp",
141        "RefreshRateOverlay.cpp",
142        "RegionSamplingThread.cpp",
143        "RenderArea.cpp",
144        "Scheduler/DispSync.cpp",
145        "Scheduler/DispSyncSource.cpp",
146        "Scheduler/EventControlThread.cpp",
147        "Scheduler/EventThread.cpp",
148        "Scheduler/IdleTimer.cpp",
149        "Scheduler/LayerHistory.cpp",
150        "Scheduler/LayerInfo.cpp",
151        "Scheduler/MessageQueue.cpp",
152        "Scheduler/Scheduler.cpp",
153        "Scheduler/SchedulerUtils.cpp",
154        "Scheduler/PhaseOffsets.cpp",
155        "StartPropertySetThread.cpp",
156        "SurfaceFlinger.cpp",
157        "SurfaceInterceptor.cpp",
158        "SurfaceTracing.cpp",
159        "TimeStats/TimeStats.cpp",
160        "TransactionCompletedThread.cpp",
161    ],
162}
163
164cc_library_shared {
165    // Please use libsurfaceflinger_defaults to configure how the sources are
166    // built, so the same settings can be used elsewhere.
167    name: "libsurfaceflinger",
168    defaults: ["libsurfaceflinger_production_defaults"],
169    srcs: [
170        ":libsurfaceflinger_sources",
171
172        // Note: SurfaceFlingerFactory is not in the default sources so that it
173        // can be easily replaced.
174        "SurfaceFlingerFactory.cpp",
175    ],
176    logtags: ["EventLog/EventLogTags.logtags"],
177}
178
179cc_defaults {
180    name: "libsurfaceflinger_binary",
181    defaults: ["surfaceflinger_defaults"],
182    cflags: [
183        "-DLOG_TAG=\"SurfaceFlinger\"",
184    ],
185    whole_static_libs: [
186        "libsigchain",
187    ],
188    shared_libs: [
189        "android.frameworks.displayservice@1.0",
190        "android.hardware.configstore-utils",
191        "android.hardware.configstore@1.0",
192        "android.hardware.graphics.allocator@2.0",
193        "android.hardware.graphics.allocator@3.0",
194        "libbinder",
195        "libcutils",
196        "libdisplayservicehidl",
197        "libhidlbase",
198        "libhidltransport",
199        "libinput",
200        "liblayers_proto",
201        "liblog",
202        "libprocessgroup",
203        "libsync",
204        "libtimestats_proto",
205        "libutils",
206    ],
207    static_libs: [
208        "libserviceutils",
209        "libtrace_proto",
210    ],
211    ldflags: ["-Wl,--export-dynamic"],
212}
213
214filegroup {
215    name: "surfaceflinger_binary_sources",
216    srcs: ["main_surfaceflinger.cpp"],
217}
218
219cc_binary {
220    name: "surfaceflinger",
221    defaults: ["libsurfaceflinger_binary"],
222    init_rc: ["surfaceflinger.rc"],
223    srcs: [":surfaceflinger_binary_sources"],
224    shared_libs: [
225        "libsurfaceflinger",
226        "libSurfaceFlingerProp",
227    ],
228}
229
230subdirs = [
231    "layerproto",
232    "TimeStats/timestatsproto",
233    "tests",
234]
235
236cc_library_shared {
237    name: "libSurfaceFlingerProp",
238    srcs: [
239        "SurfaceFlingerProperties.cpp",
240    ],
241    shared_libs: [
242        "android.hardware.configstore-utils",
243        "android.hardware.configstore@1.0",
244        "android.hardware.configstore@1.1",
245        "android.hardware.graphics.common@1.2",
246        "libhidlbase",
247        "libhidltransport",
248        "libhwbinder",
249        "libui",
250        "libutils",
251        "liblog",
252    ],
253    static_libs: [
254        "SurfaceFlingerProperties",
255    ],
256    export_shared_lib_headers: [
257        "android.hardware.graphics.common@1.2",
258        "libhidlbase",
259        "libhidltransport",
260        "libhwbinder",
261    ],
262    export_static_lib_headers: [
263        "SurfaceFlingerProperties",
264    ],
265}
266