| package { | |
| // See: http://go/android-license-faq | |
| // A large-scale-change added 'default_applicable_licenses' to import | |
| // all of the 'license_kinds' from "frameworks_native_license" | |
| // to get the below license kinds: | |
| // SPDX-license-identifier-Apache-2.0 | |
| default_applicable_licenses: ["frameworks_native_license"], | |
| default_team: "trendy_team_android_core_graphics_stack", | |
| } | |
| aconfig_declarations { | |
| name: "surfaceflinger_flags", | |
| package: "com.android.graphics.surfaceflinger.flags", | |
| container: "system", | |
| srcs: [ | |
| "surfaceflinger_flags.aconfig", | |
| "surfaceflinger_flags_new.aconfig", | |
| ], | |
| } | |
| cc_aconfig_library { | |
| name: "libsurfaceflingerflags", | |
| aconfig_declarations: "surfaceflinger_flags", | |
| } | |
| cc_defaults { | |
| name: "surfaceflinger_defaults", | |
| cflags: [ | |
| "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION", | |
| "-Wall", | |
| "-Wconversion", | |
| "-Werror", | |
| "-Wextra", | |
| "-Wformat", | |
| "-Wthread-safety", | |
| "-Wunreachable-code", | |
| "-Wunused", | |
| ], | |
| } | |
| cc_defaults { | |
| name: "libsurfaceflinger_defaults", | |
| defaults: [ | |
| "android.hardware.graphics.composer3-ndk_shared", | |
| "librenderengine_deps", | |
| "libsurfaceflinger_common_deps", | |
| "libsurfaceflinger_proto_deps", | |
| "libtimestats_deps", | |
| "poweradvisor_deps", | |
| "surfaceflinger_defaults", | |
| ], | |
| cflags: [ | |
| "-DEGL_EGLEXT_PROTOTYPES", | |
| "-DGL_GLEXT_PROTOTYPES", | |
| "-DLOG_TAG=\"SurfaceFlinger\"", | |
| ], | |
| shared_libs: [ | |
| "android.hardware.common-V2-ndk", | |
| "android.hardware.common.fmq-V1-ndk", | |
| "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.graphics.composer@2.4", | |
| "android.os.flags-aconfig-cc-host", | |
| "libEGL", | |
| "libGLESv1_CM", | |
| "libGLESv2", | |
| "libSurfaceFlingerProp", | |
| "libaconfig_storage_read_api_cc", | |
| "libbase", | |
| "libbinder", | |
| "libbinder_ndk", | |
| "libcutils", | |
| "libfmq", | |
| "libgui", | |
| "libhidlbase", | |
| "liblog", | |
| "libnativewindow", | |
| "libprocessgroup", | |
| "libprotobuf-cpp-lite", | |
| "libstatslog_surfaceflinger_bootstrap", | |
| "libsync", | |
| "libui", | |
| "libutils", | |
| ], | |
| static_libs: [ | |
| "iinputflinger_aidl_lib_static", | |
| "libaidlcommonsupport", | |
| "libcompositionengine", | |
| "libgui_aidl_static", | |
| "libperfetto_client_experimental", | |
| "librenderengine", | |
| "libscheduler", | |
| "libserviceutils", | |
| "libshaders", | |
| "libsurfaceflingerflags", | |
| "libtimestats", | |
| "libtonemap", | |
| ], | |
| header_libs: [ | |
| "android.hardware.graphics.composer3-command-buffer", | |
| "android.hardware.graphics.composer@2.1-command-buffer", | |
| "android.hardware.graphics.composer@2.2-command-buffer", | |
| "android.hardware.graphics.composer@2.3-command-buffer", | |
| "android.hardware.graphics.composer@2.4-command-buffer", | |
| ], | |
| export_static_lib_headers: [ | |
| "libcompositionengine", | |
| "librenderengine", | |
| "libserviceutils", | |
| "libtimestats", | |
| ], | |
| 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.graphics.composer@2.4", | |
| "libhidlbase", | |
| "libpowermanager", | |
| ], | |
| // TODO (marissaw): this library is not used by surfaceflinger. This is here so | |
| // the library compiled in a way that is accessible to system partition when running | |
| // IMapper's VTS. | |
| required: ["libgralloctypes"], | |
| } | |
| cc_defaults { | |
| name: "libsurfaceflinger_production_defaults", | |
| defaults: ["libsurfaceflinger_defaults"], | |
| lto: { | |
| thin: true, | |
| }, | |
| whole_program_vtables: true, // Requires ThinLTO | |
| afdo: true, | |
| // TODO(b/131771163): Fix broken fuzzer support with LTO. | |
| sanitize: { | |
| fuzzer: false, | |
| }, | |
| } | |
| // libsurfaceflinger_backend_{headers|sources} are a step towards pulling out | |
| // the "backend" sources to clean up the dependency graph between | |
| // CompositionEngine and SurfaceFlinger. Completing the cleanup would require | |
| // moving the headers in particular so that the dependency can strictly be a | |
| // DAG. There would certainly be additional cleanups: VirtualDisplaySurface.cpp | |
| // and FrameBufferSurface.cpp likely belong in CompositionEngine for example. | |
| cc_library_headers { | |
| name: "libsurfaceflinger_backend_headers", | |
| export_include_dirs: ["."], | |
| static_libs: ["libserviceutils"], | |
| export_static_lib_headers: ["libserviceutils"], | |
| shared_libs: [ | |
| "android.hardware.configstore-utils", | |
| "android.hardware.configstore@1.0", | |
| "android.hardware.configstore@1.1", | |
| "libbinder_ndk", | |
| ], | |
| export_shared_lib_headers: [ | |
| "android.hardware.configstore-utils", | |
| "android.hardware.configstore@1.0", | |
| "android.hardware.configstore@1.1", | |
| "libbinder_ndk", | |
| ], | |
| } | |
| filegroup { | |
| name: "libsurfaceflinger_backend_sources", | |
| srcs: [ | |
| "DisplayHardware/AidlComposerHal.cpp", | |
| "DisplayHardware/ComposerHal.cpp", | |
| "DisplayHardware/FramebufferSurface.cpp", | |
| "DisplayHardware/HWC2.cpp", | |
| "DisplayHardware/HWComposer.cpp", | |
| "DisplayHardware/HidlComposerHal.cpp", | |
| "DisplayHardware/VirtualDisplaySurface.cpp", | |
| "DisplayHardware/VirtualDisplay/VirtualDisplaySurface2.cpp", | |
| "PowerAdvisor/*.cpp", | |
| ], | |
| } | |
| cc_library_headers { | |
| name: "libsurfaceflinger_headers", | |
| export_include_dirs: ["."], | |
| static_libs: ["libserviceutils"], | |
| export_static_lib_headers: ["libserviceutils"], | |
| } | |
| filegroup { | |
| name: "libsurfaceflinger_sources", | |
| srcs: [ | |
| ":libsurfaceflinger_backend_sources", | |
| "ActivePictureTracker.cpp", | |
| "BackgroundExecutor.cpp", | |
| "Client.cpp", | |
| "ClientCache.cpp", | |
| "Display/DisplayIdentification.cpp", | |
| "Display/DisplayModeController.cpp", | |
| "Display/DisplaySnapshot.cpp", | |
| "DisplayDevice.cpp", | |
| "Effects/Daltonizer.cpp", | |
| "FpsReporter.cpp", | |
| "FrameTracer/FrameTracer.cpp", | |
| "FrameTracker.cpp", | |
| "FrontEnd/LayerCreationArgs.cpp", | |
| "FrontEnd/LayerHandle.cpp", | |
| "FrontEnd/LayerHierarchy.cpp", | |
| "FrontEnd/LayerLifecycleManager.cpp", | |
| "FrontEnd/LayerSnapshot.cpp", | |
| "FrontEnd/LayerSnapshotBuilder.cpp", | |
| "FrontEnd/RequestedLayerState.cpp", | |
| "FrontEnd/TransactionHandler.cpp", | |
| "HdrLayerInfoReporter.cpp", | |
| "HdrSdrRatioOverlay.cpp", | |
| "Jank/JankTracker.cpp", | |
| "Layer.cpp", | |
| "LayerFE.cpp", | |
| "LayerProtoHelper.cpp", | |
| "LayerVector.cpp", | |
| "NativeWindowSurface.cpp", | |
| "RefreshRateOverlay.cpp", | |
| "RegionSamplingThread.cpp", | |
| "Scheduler/EventThread.cpp", | |
| "Scheduler/FrameRateOverrideMappings.cpp", | |
| "Scheduler/FrameTimeline.cpp", | |
| "Scheduler/LayerHistory.cpp", | |
| "Scheduler/LayerInfo.cpp", | |
| "Scheduler/MessageQueue.cpp", | |
| "Scheduler/OneShotTimer.cpp", | |
| "Scheduler/RefreshRateSelector.cpp", | |
| "Scheduler/Scheduler.cpp", | |
| "Scheduler/SmallAreaDetectionAllowMappings.cpp", | |
| "Scheduler/VSyncDispatchTimerQueue.cpp", | |
| "Scheduler/VSyncPredictor.cpp", | |
| "Scheduler/VSyncReactor.cpp", | |
| "Scheduler/VsyncConfiguration.cpp", | |
| "Scheduler/VsyncModulator.cpp", | |
| "Scheduler/VsyncSchedule.cpp", | |
| "ScreenCaptureOutput.cpp", | |
| "SurfaceFlinger.cpp", | |
| "SurfaceFlingerDefaultFactory.cpp", | |
| "Tracing/LayerDataSource.cpp", | |
| "Tracing/LayerTracing.cpp", | |
| "Tracing/TransactionDataSource.cpp", | |
| "Tracing/TransactionProtoParser.cpp", | |
| "Tracing/TransactionTracing.cpp", | |
| "Tracing/tools/LayerTraceGenerator.cpp", | |
| "TransactionCallbackInvoker.cpp", | |
| "TunnelModeEnabledReporter.cpp", | |
| "WindowInfosListenerInvoker.cpp", | |
| ], | |
| } | |
| cc_defaults { | |
| name: "libsurfaceflinger_binary", | |
| defaults: [ | |
| "libsurfaceflinger_production_defaults", | |
| "surfaceflinger_defaults", | |
| ], | |
| cflags: [ | |
| "-DLOG_TAG=\"SurfaceFlinger\"", | |
| ], | |
| shared_libs: [ | |
| "android.hardware.configstore-utils", | |
| "android.hardware.configstore@1.0", | |
| "android.hardware.graphics.allocator@2.0", | |
| "android.hardware.graphics.allocator@3.0", | |
| "libbinder", | |
| "libcutils", | |
| "libhidlbase", | |
| "liblog", | |
| "libprocessgroup", | |
| "libsync", | |
| "libutils", | |
| ], | |
| static_libs: [ | |
| "android.frameworks.displayservice@1.0", | |
| "libdisplayservicehidl", | |
| "libserviceutils", | |
| ], | |
| } | |
| filegroup { | |
| name: "surfaceflinger_binary_sources", | |
| srcs: [ | |
| ":libsurfaceflinger_sources", | |
| "main_surfaceflinger.cpp", | |
| ], | |
| } | |
| cc_binary { | |
| name: "surfaceflinger", | |
| defaults: ["libsurfaceflinger_binary"], | |
| init_rc: ["surfaceflinger.rc"], | |
| srcs: [ | |
| ":surfaceflinger_binary_sources", | |
| // Note: SurfaceFlingerFactory is not in the filegroup so that it | |
| // can be easily replaced. | |
| "SurfaceFlingerFactory.cpp", | |
| ], | |
| shared_libs: [ | |
| "libSurfaceFlingerProp", | |
| ], | |
| logtags: ["surfaceflinger.logtags"], | |
| } | |
| subdirs = [ | |
| "layerproto", | |
| "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", | |
| "liblog", | |
| "libui", | |
| "libutils", | |
| ], | |
| static_libs: [ | |
| "libSurfaceFlingerProperties", | |
| ], | |
| export_shared_lib_headers: [ | |
| "android.hardware.graphics.common@1.2", | |
| "libhidlbase", | |
| "libui", | |
| ], | |
| export_static_lib_headers: [ | |
| "libSurfaceFlingerProperties", | |
| ], | |
| } | |
| cc_library { | |
| name: "libstatslog_surfaceflinger_bootstrap", | |
| generated_sources: ["statslog_surfaceflinger_bootstrap.cpp"], | |
| generated_headers: ["statslog_surfaceflinger_bootstrap.h"], | |
| export_generated_headers: ["statslog_surfaceflinger_bootstrap.h"], | |
| shared_libs: [ | |
| "libbinder", | |
| "libstatsbootstrap", | |
| "libutils", | |
| ], | |
| } | |
| genrule { | |
| name: "statslog_surfaceflinger_bootstrap.h", | |
| tools: ["stats-log-api-gen"], | |
| cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_surfaceflinger_bootstrap.h" + | |
| " --module surfaceflinger --namespace android,surfaceflinger,stats --bootstrap", | |
| out: [ | |
| "statslog_surfaceflinger_bootstrap.h", | |
| ], | |
| } | |
| genrule { | |
| name: "statslog_surfaceflinger_bootstrap.cpp", | |
| tools: ["stats-log-api-gen"], | |
| cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_surfaceflinger_bootstrap.cpp" + | |
| " --module surfaceflinger --namespace android,surfaceflinger,stats" + | |
| " --importHeader statslog_surfaceflinger_bootstrap.h --bootstrap", | |
| out: [ | |
| "statslog_surfaceflinger_bootstrap.cpp", | |
| ], | |
| } | |
| cc_library { | |
| name: "libstatslog_surfaceflinger", | |
| generated_sources: ["statslog_surfaceflinger.cpp"], | |
| generated_headers: ["statslog_surfaceflinger.h"], | |
| export_generated_headers: ["statslog_surfaceflinger.h"], | |
| shared_libs: [ | |
| "libstatspull", | |
| "libstatssocket", | |
| ], | |
| } | |
| genrule { | |
| name: "statslog_surfaceflinger.h", | |
| tools: ["stats-log-api-gen"], | |
| cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_surfaceflinger.h" + | |
| " --module surfaceflinger --namespace android,surfaceflinger,stats", | |
| out: [ | |
| "statslog_surfaceflinger.h", | |
| ], | |
| } | |
| genrule { | |
| name: "statslog_surfaceflinger.cpp", | |
| tools: ["stats-log-api-gen"], | |
| cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_surfaceflinger.cpp" + | |
| " --module surfaceflinger --namespace android,surfaceflinger,stats" + | |
| " --importHeader statslog_surfaceflinger.h", | |
| out: [ | |
| "statslog_surfaceflinger.cpp", | |
| ], | |
| } |