xref: /aosp_15_r20/frameworks/native/services/surfaceflinger/CompositionEngine/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1package {
2    // See: http://go/android-license-faq
3    // A large-scale-change added 'default_applicable_licenses' to import
4    // all of the 'license_kinds' from "frameworks_native_license"
5    // to get the below license kinds:
6    //   SPDX-license-identifier-Apache-2.0
7    default_applicable_licenses: ["frameworks_native_license"],
8    default_team: "trendy_team_android_core_graphics_stack",
9}
10
11cc_defaults {
12    name: "libcompositionengine_defaults",
13    defaults: [
14        "aconfig_lib_cc_static_link.defaults",
15        "android.hardware.graphics.composer3-ndk_shared",
16        "android.hardware.power-ndk_shared",
17        "librenderengine_deps",
18        "libtimestats_deps",
19        "surfaceflinger_defaults",
20        "libsurfaceflinger_proto_deps",
21    ],
22    cflags: [
23        "-DLOG_TAG=\"CompositionEngine\"",
24        "-DATRACE_TAG=ATRACE_TAG_GRAPHICS",
25    ],
26    shared_libs: [
27        "[email protected]",
28        "[email protected]",
29        "[email protected]",
30        "[email protected]",
31        "[email protected]",
32        "[email protected]",
33        "[email protected]",
34        "libbase",
35        "libcutils",
36        "libgui",
37        "liblog",
38        "libnativewindow",
39        "libprotobuf-cpp-lite",
40        "libSurfaceFlingerProp",
41        "libui",
42        "libutils",
43    ],
44    static_libs: [
45        "libguiflags",
46        "libmath",
47        "librenderengine",
48        "libtimestats",
49        "libtonemap",
50        "libaidlcommonsupport",
51        "libprocessgroup",
52        "libprocessgroup_util",
53        "libjsoncpp",
54    ],
55    header_libs: [
56        "[email protected]",
57        "[email protected]",
58        "[email protected]",
59        "[email protected]",
60        "android.hardware.graphics.composer3-command-buffer",
61        "libsurfaceflinger_backend_headers",
62    ],
63}
64
65filegroup {
66    name: "libcompositionengine_sources",
67    srcs: [
68        "src/planner/CachedSet.cpp",
69        "src/planner/Flattener.cpp",
70        "src/planner/LayerState.cpp",
71        "src/planner/Planner.cpp",
72        "src/planner/Predictor.cpp",
73        "src/planner/TexturePool.cpp",
74        "src/ClientCompositionRequestCache.cpp",
75        "src/CompositionEngine.cpp",
76        "src/Display.cpp",
77        "src/DisplayColorProfile.cpp",
78        "src/DisplaySurface.cpp",
79        "src/DumpHelpers.cpp",
80        "src/HwcAsyncWorker.cpp",
81        "src/HwcBufferCache.cpp",
82        "src/LayerFECompositionState.cpp",
83        "src/Output.cpp",
84        "src/OutputCompositionState.cpp",
85        "src/OutputLayer.cpp",
86        "src/OutputLayerCompositionState.cpp",
87        "src/RenderSurface.cpp",
88    ],
89}
90
91cc_library {
92    name: "libcompositionengine",
93    defaults: [
94        "libcompositionengine_defaults",
95        "libsurfaceflinger_common_deps",
96    ],
97    srcs: [
98        ":libcompositionengine_sources",
99    ],
100    local_include_dirs: ["include"],
101    export_include_dirs: ["include"],
102}
103
104cc_library {
105    name: "libcompositionengine_mocks",
106    defaults: [
107        "libcompositionengine_defaults",
108        "libsurfaceflinger_common_test_deps",
109    ],
110    srcs: [
111        "mock/CompositionEngine.cpp",
112        "mock/Display.cpp",
113        "mock/DisplayColorProfile.cpp",
114        "mock/DisplaySurface.cpp",
115        "mock/LayerFE.cpp",
116        "mock/NativeWindow.cpp",
117        "mock/Output.cpp",
118        "mock/OutputLayer.cpp",
119        "mock/RenderSurface.cpp",
120    ],
121    static_libs: [
122        "libgtest",
123        "libgmock",
124        "libcompositionengine",
125    ],
126    local_include_dirs: ["include"],
127    export_include_dirs: ["include"],
128}
129
130cc_test {
131    name: "libcompositionengine_test",
132    test_suites: ["device-tests"],
133    include_dirs: [
134        "frameworks/native/services/surfaceflinger/common/include",
135        "frameworks/native/services/surfaceflinger/tests/unittests",
136    ],
137    defaults: [
138        "libcompositionengine_defaults",
139        "libsurfaceflinger_common_test_deps",
140    ],
141    srcs: [
142        ":libcompositionengine_sources",
143        ":libsurfaceflinger_backend_mock_sources",
144        ":libsurfaceflinger_backend_sources",
145        "tests/planner/CachedSetTest.cpp",
146        "tests/planner/FlattenerTest.cpp",
147        "tests/planner/LayerStateTest.cpp",
148        "tests/planner/PredictorTest.cpp",
149        "tests/planner/TexturePoolTest.cpp",
150        "tests/CompositionEngineTest.cpp",
151        "tests/DisplayColorProfileTest.cpp",
152        "tests/DisplayTest.cpp",
153        "tests/HwcAsyncWorkerTest.cpp",
154        "tests/HwcBufferCacheTest.cpp",
155        "tests/OutputLayerTest.cpp",
156        "tests/OutputTest.cpp",
157        "tests/ProjectionSpaceTest.cpp",
158        "tests/RenderSurfaceTest.cpp",
159    ],
160    header_libs: [
161        "libsurfaceflinger_backend_mock_headers",
162    ],
163    static_libs: [
164        "libcompositionengine_mocks",
165        "libgui_mocks",
166        "librenderengine_mocks",
167        "libgmock",
168        "libgtest",
169    ],
170    shared_libs: [
171        "libbinder_ndk",
172        // For some reason, libvulkan isn't picked up from librenderengine
173        // Probably ASAN related?
174        "libvulkan",
175    ],
176    sanitize: {
177        hwaddress: true,
178    },
179}
180