cc_defaults { name: "surfaceflinger_defaults", cflags: [ "-Wall", "-Werror", "-Wformat", "-Wthread-safety", "-Wunused", "-Wunreachable-code", ], } cc_defaults { name: "libsurfaceflinger_defaults", defaults: ["surfaceflinger_defaults"], cflags: [ "-DLOG_TAG=\"SurfaceFlinger\"", "-DGL_GLEXT_PROTOTYPES", "-DEGL_EGLEXT_PROTOTYPES", ], shared_libs: [ "android.frameworks.vr.composer@1.0", "android.hardware.configstore-utils", "android.hardware.configstore@1.0", "android.hardware.configstore@1.1", "android.hardware.graphics.allocator@2.0", "android.hardware.graphics.allocator@3.0", "android.hardware.graphics.common@1.2", "android.hardware.graphics.composer@2.1", "android.hardware.graphics.composer@2.2", "android.hardware.graphics.composer@2.3", "android.hardware.power@1.0", "android.hardware.power@1.3", "libbase", "libbinder", "libbufferhubqueue", "libcutils", "libdl", "libEGL", "libfmq", "libGLESv1_CM", "libGLESv2", "libgui", "libhardware", "libhidlbase", "libhidltransport", "libhwbinder", "liblayers_proto", "liblog", "libnativewindow", "libpdx_default_transport", "libprocessgroup", "libprotobuf-cpp-lite", "libsync", "libtimestats_proto", "libui", "libinput", "libutils", "libSurfaceFlingerProp", ], static_libs: [ "libcompositionengine", "librenderengine", "libserviceutils", "libtrace_proto", "libvr_manager", "libvrflinger", ], header_libs: [ "android.hardware.graphics.composer@2.1-command-buffer", "android.hardware.graphics.composer@2.2-command-buffer", "android.hardware.graphics.composer@2.3-command-buffer", ], export_static_lib_headers: [ "libcompositionengine", "librenderengine", "libserviceutils", ], export_shared_lib_headers: [ "android.hardware.graphics.allocator@2.0", "android.hardware.graphics.allocator@3.0", "android.hardware.graphics.common@1.2", "android.hardware.graphics.composer@2.1", "android.hardware.graphics.composer@2.2", "android.hardware.graphics.composer@2.3", "android.hardware.power@1.3", "libhidlbase", "libhidltransport", "libhwbinder", ], } cc_defaults { name: "libsurfaceflinger_production_defaults", defaults: ["libsurfaceflinger_defaults"], cflags: [ "-fvisibility=hidden", "-fwhole-program-vtables", // requires ThinLTO ], lto: { thin: true, }, } cc_library_headers { name: "libsurfaceflinger_headers", export_include_dirs: ["."], static_libs: ["libserviceutils"], export_static_lib_headers: ["libserviceutils"], } filegroup { name: "libsurfaceflinger_sources", srcs: [ "BufferLayer.cpp", "BufferLayerConsumer.cpp", "BufferQueueLayer.cpp", "BufferStateLayer.cpp", "ClientCache.cpp", "Client.cpp", "ColorLayer.cpp", "ContainerLayer.cpp", "DisplayDevice.cpp", "DisplayHardware/ComposerHal.cpp", "DisplayHardware/DisplayIdentification.cpp", "DisplayHardware/FramebufferSurface.cpp", "DisplayHardware/HWC2.cpp", "DisplayHardware/HWComposer.cpp", "DisplayHardware/PowerAdvisor.cpp", "DisplayHardware/VirtualDisplaySurface.cpp", "Effects/Daltonizer.cpp", "EventLog/EventLog.cpp", "FrameTracker.cpp", "Layer.cpp", "LayerProtoHelper.cpp", "LayerRejecter.cpp", "LayerStats.cpp", "LayerVector.cpp", "MonitoredProducer.cpp", "NativeWindowSurface.cpp", "RefreshRateOverlay.cpp", "RegionSamplingThread.cpp", "RenderArea.cpp", "Scheduler/DispSync.cpp", "Scheduler/DispSyncSource.cpp", "Scheduler/EventControlThread.cpp", "Scheduler/EventThread.cpp", "Scheduler/IdleTimer.cpp", "Scheduler/LayerHistory.cpp", "Scheduler/LayerInfo.cpp", "Scheduler/MessageQueue.cpp", "Scheduler/Scheduler.cpp", "Scheduler/SchedulerUtils.cpp", "Scheduler/PhaseOffsets.cpp", "StartPropertySetThread.cpp", "SurfaceFlinger.cpp", "SurfaceInterceptor.cpp", "SurfaceTracing.cpp", "TimeStats/TimeStats.cpp", "TransactionCompletedThread.cpp", ], } cc_library_shared { // Please use libsurfaceflinger_defaults to configure how the sources are // built, so the same settings can be used elsewhere. name: "libsurfaceflinger", defaults: ["libsurfaceflinger_production_defaults"], srcs: [ ":libsurfaceflinger_sources", // Note: SurfaceFlingerFactory is not in the default sources so that it // can be easily replaced. "SurfaceFlingerFactory.cpp", ], logtags: ["EventLog/EventLogTags.logtags"], } cc_defaults { name: "libsurfaceflinger_binary", defaults: ["surfaceflinger_defaults"], cflags: [ "-DLOG_TAG=\"SurfaceFlinger\"", ], whole_static_libs: [ "libsigchain", ], shared_libs: [ "android.frameworks.displayservice@1.0", "android.hardware.configstore-utils", "android.hardware.configstore@1.0", "android.hardware.graphics.allocator@2.0", "android.hardware.graphics.allocator@3.0", "libbinder", "libcutils", "libdisplayservicehidl", "libhidlbase", "libhidltransport", "libinput", "liblayers_proto", "liblog", "libprocessgroup", "libsync", "libtimestats_proto", "libutils", ], static_libs: [ "libserviceutils", "libtrace_proto", ], ldflags: ["-Wl,--export-dynamic"], } filegroup { name: "surfaceflinger_binary_sources", srcs: ["main_surfaceflinger.cpp"], } cc_binary { name: "surfaceflinger", defaults: ["libsurfaceflinger_binary"], init_rc: ["surfaceflinger.rc"], srcs: [":surfaceflinger_binary_sources"], shared_libs: [ "libsurfaceflinger", "libSurfaceFlingerProp", ], } subdirs = [ "layerproto", "TimeStats/timestatsproto", "tests", ] cc_library_shared { name: "libSurfaceFlingerProp", srcs: [ "SurfaceFlingerProperties.cpp", ], shared_libs: [ "android.hardware.configstore-utils", "android.hardware.configstore@1.0", "android.hardware.configstore@1.1", "android.hardware.graphics.common@1.2", "libhidlbase", "libhidltransport", "libhwbinder", "libui", "libutils", "liblog", ], static_libs: [ "SurfaceFlingerProperties", ], export_shared_lib_headers: [ "android.hardware.graphics.common@1.2", "libhidlbase", "libhidltransport", "libhwbinder", ], export_static_lib_headers: [ "SurfaceFlingerProperties", ], }