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