summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/CompositionEngine/Android.bp
blob: 0a70d4299d2aee5f6c80a3cee79dd500bb439aa4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
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"],
}

cc_defaults {
    name: "libcompositionengine_defaults",
    defaults: [
        "aconfig_lib_cc_static_link.defaults",
        "android.hardware.graphics.composer3-ndk_shared",
        "android.hardware.power-ndk_shared",
        "librenderengine_deps",
        "libtimestats_deps",
        "surfaceflinger_defaults",
    ],
    cflags: [
        "-DLOG_TAG=\"CompositionEngine\"",
        "-DATRACE_TAG=ATRACE_TAG_GRAPHICS",
    ],
    shared_libs: [
        "android.hardware.graphics.allocator@2.0",
        "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.hardware.power@1.0",
        "android.hardware.power@1.3",
        "libbase",
        "libcutils",
        "libgui",
        "liblog",
        "libnativewindow",
        "libprotobuf-cpp-lite",
        "libSurfaceFlingerProp",
        "libui",
        "libutils",
        "server_configurable_flags",
    ],
    static_libs: [
        "liblayers_proto",
        "libmath",
        "librenderengine",
        "libtimestats",
        "libtonemap",
        "libaidlcommonsupport",
        "libprocessgroup",
        "libcgrouprc",
        "libjsoncpp",
        "libcgrouprc_format",
    ],
    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",
        "android.hardware.graphics.composer@2.4-command-buffer",
        "android.hardware.graphics.composer3-command-buffer",
        "libsurfaceflinger_headers",
    ],
}

filegroup {
    name: "libcompositionengine_sources",
    srcs: [
        "src/planner/CachedSet.cpp",
        "src/planner/Flattener.cpp",
        "src/planner/LayerState.cpp",
        "src/planner/Planner.cpp",
        "src/planner/Predictor.cpp",
        "src/planner/TexturePool.cpp",
        "src/ClientCompositionRequestCache.cpp",
        "src/CompositionEngine.cpp",
        "src/Display.cpp",
        "src/DisplayColorProfile.cpp",
        "src/DisplaySurface.cpp",
        "src/DumpHelpers.cpp",
        "src/HwcAsyncWorker.cpp",
        "src/HwcBufferCache.cpp",
        "src/LayerFECompositionState.cpp",
        "src/Output.cpp",
        "src/OutputCompositionState.cpp",
        "src/OutputLayer.cpp",
        "src/OutputLayerCompositionState.cpp",
        "src/RenderSurface.cpp",
    ],
}

cc_library {
    name: "libcompositionengine",
    defaults: ["libcompositionengine_defaults"],
    static_libs: [
        "libsurfaceflinger_common",
        "libsurfaceflingerflags",
    ],
    srcs: [
        ":libcompositionengine_sources",
    ],
    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
    shared_libs: [
        "server_configurable_flags",
    ],
}

cc_library {
    name: "libcompositionengine_mocks",
    defaults: ["libcompositionengine_defaults"],
    srcs: [
        "mock/CompositionEngine.cpp",
        "mock/Display.cpp",
        "mock/DisplayColorProfile.cpp",
        "mock/DisplaySurface.cpp",
        "mock/LayerFE.cpp",
        "mock/NativeWindow.cpp",
        "mock/Output.cpp",
        "mock/OutputLayer.cpp",
        "mock/RenderSurface.cpp",
    ],
    static_libs: [
        "libgtest",
        "libgmock",
        "libcompositionengine",
        "libsurfaceflinger_common_test",
        "libsurfaceflingerflags_test",
    ],
    shared_libs: [
        "server_configurable_flags",
    ],
    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
}

cc_test {
    name: "libcompositionengine_test",
    test_suites: ["device-tests"],
    include_dirs: [
        "frameworks/native/services/surfaceflinger/common/include",
        "frameworks/native/services/surfaceflinger/tests/unittests",
    ],
    defaults: ["libcompositionengine_defaults"],
    srcs: [
        ":libcompositionengine_sources",
        "tests/planner/CachedSetTest.cpp",
        "tests/planner/FlattenerTest.cpp",
        "tests/planner/LayerStateTest.cpp",
        "tests/planner/PredictorTest.cpp",
        "tests/planner/TexturePoolTest.cpp",
        "tests/CompositionEngineTest.cpp",
        "tests/DisplayColorProfileTest.cpp",
        "tests/DisplayTest.cpp",
        "tests/HwcBufferCacheTest.cpp",
        "tests/MockHWC2.cpp",
        "tests/MockHWComposer.cpp",
        "tests/MockPowerAdvisor.cpp",
        "tests/OutputLayerTest.cpp",
        "tests/OutputTest.cpp",
        "tests/ProjectionSpaceTest.cpp",
        "tests/RenderSurfaceTest.cpp",
    ],
    static_libs: [
        "libcompositionengine_mocks",
        "libgui_mocks",
        "librenderengine_mocks",
        "libgmock",
        "libgtest",
        "libsurfaceflinger_common_test",
        "libsurfaceflingerflags_test",
    ],
    shared_libs: [
        // For some reason, libvulkan isn't picked up from librenderengine
        // Probably ASAN related?
        "libvulkan",
        "server_configurable_flags",
    ],
    sanitize: {
        hwaddress: true,
    },
}