blob: e38192d86090ead8d7a5265d21668feeab1b98ef [file] [log] [blame]
Colin Crosscdf4b492019-03-22 13:13:12 -07001// Copyright (C) 2015 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Roman Stratiienko4dfa62d2022-11-16 15:16:39 +020015cc_library_headers {
16 name: "drm_hwcomposer_headers",
17 vendor: true,
18 export_include_dirs: ["."],
19}
20
Colin Crosscdf4b492019-03-22 13:13:12 -070021// =====================
Colin Crosscdf4b492019-03-22 13:13:12 -070022// hwcomposer.drm.so
23// =====================
24cc_defaults {
25 name: "hwcomposer.drm_defaults",
26
27 shared_libs: [
Drew Davenport5951b112024-08-05 09:44:27 -060028 "android.hardware.graphics.composer@2.1-resources",
29 "android.hardware.graphics.composer@2.2-resources",
Colin Crosscdf4b492019-03-22 13:13:12 -070030 "libcutils",
31 "libdrm",
32 "libhardware",
Roman Stratiienkoadd24cb2020-10-23 22:28:38 +030033 "libhidlbase",
Colin Crosscdf4b492019-03-22 13:13:12 -070034 "liblog",
35 "libsync",
36 "libui",
37 "libutils",
38 ],
39
Drew Davenport5951b112024-08-05 09:44:27 -060040 static_libs: [
41 "libaidlcommonsupport",
42 ],
43
44 header_libs: [
45 "drm_hwcomposer_headers",
46 ],
Colin Crosscdf4b492019-03-22 13:13:12 -070047
Colin Crosscce12782019-03-29 10:27:23 -070048 cflags: [
49 "-Wall",
50 "-Werror",
51 ],
52
53 cppflags: [
Colin Crosscce12782019-03-29 10:27:23 -070054 "-DHWC2_INCLUDE_STRINGIFICATION",
Roman Stratiienkod6659982021-02-27 22:08:51 +020055 "-DHWC2_USE_CPP11",
Colin Crosscce12782019-03-29 10:27:23 -070056 ],
57
58 relative_install_path: "hw",
59 vendor: true,
60}
Roman Stratiienkod6659982021-02-27 22:08:51 +020061
Roman Stratiienko0ee8f582021-10-28 15:52:38 +030062filegroup {
Roman Stratiienkobdc43822023-06-27 21:23:50 +030063 name: "drm_hwcomposer_fd",
64 srcs: ["utils/fd.cpp"],
65}
66
67filegroup {
Roman Stratiienko0ee8f582021-10-28 15:52:38 +030068 name: "drm_hwcomposer_common",
Colin Crosscdf4b492019-03-22 13:13:12 -070069 srcs: [
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +030070 "bufferinfo/BufferInfoGetter.cpp",
71 "bufferinfo/BufferInfoMapperMetadata.cpp",
72
Roman Stratiienko9362cef2022-02-02 09:53:50 +020073 "compositor/DrmKmsPlan.cpp",
Roman Stratiienko22fe9612023-01-17 21:22:29 +020074 "compositor/FlatteningController.cpp",
Sean Paul27cd4802019-04-02 16:57:20 -040075
Roman Stratiienko4e994052022-02-09 17:40:35 +020076 "drm/DrmAtomicStateManager.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +030077 "drm/DrmConnector.cpp",
78 "drm/DrmCrtc.cpp",
79 "drm/DrmDevice.cpp",
Roman Stratiienkocad8e0c2022-01-31 16:40:16 +020080 "drm/DrmDisplayPipeline.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +030081 "drm/DrmEncoder.cpp",
Roman Stratiienko8666dc92021-02-09 17:49:55 +020082 "drm/DrmFbImporter.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +030083 "drm/DrmMode.cpp",
84 "drm/DrmPlane.cpp",
85 "drm/DrmProperty.cpp",
86 "drm/ResourceManager.cpp",
Roman Stratiienko1e053b42021-10-25 22:54:20 +030087 "drm/UEventListener.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +030088 "drm/VSyncWorker.cpp",
Drew Davenport93443182023-12-14 09:25:45 +000089 "drm/DrmHwc.cpp",
Sean Paul27cd4802019-04-02 16:57:20 -040090
Roman Stratiienko13cc3662020-08-29 21:35:39 +030091 "backend/Backend.cpp",
92 "backend/BackendClient.cpp",
Roman Stratiienkod6659982021-02-27 22:08:51 +020093 "backend/BackendManager.cpp",
Roman Stratiienko26fd2b22022-01-04 12:59:29 +020094
Roman Stratiienko3e168902022-01-04 16:13:12 +020095 "hwc2_device/DrmHwcTwo.cpp",
Roman Stratiienko3627beb2022-01-04 16:02:55 +020096 "hwc2_device/HwcDisplay.cpp",
Roman Stratiienko0137f862022-01-04 18:27:40 +020097 "hwc2_device/HwcDisplayConfigs.cpp",
Roman Stratiienko03fd35c2022-01-04 14:30:37 +020098 "hwc2_device/HwcLayer.cpp",
Roman Stratiienko26fd2b22022-01-04 12:59:29 +020099 "hwc2_device/hwc2_device.cpp",
Roman Stratiienko76892782023-01-16 17:15:53 +0200100
101 "utils/fd.cpp",
Colin Crosscdf4b492019-03-22 13:13:12 -0700102 ],
Colin Crosscdf4b492019-03-22 13:13:12 -0700103}
104
Dennis Tsiang33f0ece2023-11-29 12:45:04 +0000105filegroup {
106 name: "drm_hwcomposer_hwc3",
107 srcs: [
108 "hwc3/Composer.cpp",
109 "hwc3/ComposerClient.cpp",
Drew Davenport5951b112024-08-05 09:44:27 -0600110 "hwc3/ComposerResources.cpp",
111 "hwc3/DrmHwcThree.cpp",
112 "hwc3/Utils.cpp",
Dennis Tsiang33f0ece2023-11-29 12:45:04 +0000113 ],
114}
115
116filegroup {
117 name: "drm_hwcomposer_service",
118 srcs: [
119 "hwc3/service.cpp",
120 ],
121}
122
123filegroup {
124 name: "drm_hwcomposer_init_rc",
125 srcs: [
126 "hwc3/hwc3-drm.rc",
127 ],
128}
129
130filegroup {
131 name: "drm_hwcomposer_vintf_manifest",
132 srcs: [
133 "hwc3/hwc3-drm.xml",
134 ],
135}
136
Roman Stratiienko0ee8f582021-10-28 15:52:38 +0300137// Kept only for compatibility with older Android version. Please do not use!
138cc_library_static {
139 name: "drm_hwcomposer",
140 defaults: ["hwcomposer.drm_defaults"],
141 srcs: [":drm_hwcomposer_common"],
142}
143
Colin Crosscdf4b492019-03-22 13:13:12 -0700144cc_library_shared {
145 name: "hwcomposer.drm",
146 defaults: ["hwcomposer.drm_defaults"],
Roman Stratiienko0ee8f582021-10-28 15:52:38 +0300147 srcs: [
148 ":drm_hwcomposer_common",
149 "bufferinfo/legacy/BufferInfoLibdrm.cpp",
150 ],
151 cflags: ["-DUSE_IMAPPER4_METADATA_API"],
Colin Crosscdf4b492019-03-22 13:13:12 -0700152}
153
154cc_library_shared {
Colin Crosscdf4b492019-03-22 13:13:12 -0700155 name: "hwcomposer.drm_minigbm",
156 defaults: ["hwcomposer.drm_defaults"],
Roman Stratiienko0ee8f582021-10-28 15:52:38 +0300157 srcs: [
158 ":drm_hwcomposer_common",
159 "bufferinfo/legacy/BufferInfoMinigbm.cpp",
160 ],
Colin Crosscdf4b492019-03-22 13:13:12 -0700161}
162
Drew Davenport6b56ace2024-07-17 09:15:37 -0600163cc_binary {
164 name: "android.hardware.composer.hwc3-service.drm",
165
166 srcs: [
Mykhailo Androsiukd44ffc72024-09-12 12:24:55 +0300167 ":drm_hwcomposer_hwc3",
168 ":drm_hwcomposer_service",
169 ":drm_hwcomposer_common",
170 "bufferinfo/legacy/BufferInfoLibdrm.cpp",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600171 ],
172
173 defaults: [
174 "hwcomposer.drm_defaults",
175 ],
176
177 shared_libs: [
Drew Davenport7f1761b2024-08-20 10:09:43 -0600178 "android.hardware.graphics.composer3-V3-ndk",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600179 "libbase",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600180 "libbinder_ndk",
181 "liblog",
182 "libutils",
183 ],
184
185 cflags: [
186 "-Wall",
187 "-Werror",
188
189 "-DUSE_IMAPPER4_METADATA_API",
190 ],
191
192 cppflags: [
193 "-DHWC2_INCLUDE_STRINGIFICATION",
194 "-DHWC2_USE_CPP11",
195 ],
196
197 relative_install_path: "hw",
198 vendor: true,
199
200 vintf_fragments: [":drm_hwcomposer_vintf_manifest"],
201 init_rc: [":drm_hwcomposer_init_rc"],
202}
203
Roman Stratiienkoe3ed48d2019-10-17 17:42:36 +0300204// Used by hwcomposer.drm_imagination
205filegroup {
206 name: "drm_hwcomposer_platformimagination",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300207 srcs: ["bufferinfo/legacy/BufferInfoImagination.cpp"],
Roman Stratiienkoe3ed48d2019-10-17 17:42:36 +0300208}
209
Colin Crosscce12782019-03-29 10:27:23 -0700210// Used by hwcomposer.drm_hikey and hwcomposer.drm_hikey960
211filegroup {
212 name: "drm_hwcomposer_platformhisi",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300213 srcs: ["bufferinfo/legacy/BufferInfoMaliHisi.cpp"],
Colin Crosscce12782019-03-29 10:27:23 -0700214}
Neil Armstrong17d3c8b2019-04-25 15:17:22 +0000215
216// Used by hwcomposer.drm_meson
217filegroup {
218 name: "drm_hwcomposer_platformmeson",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300219 srcs: ["bufferinfo/legacy/BufferInfoMaliMeson.cpp"],
Neil Armstrong17d3c8b2019-04-25 15:17:22 +0000220}
Mattijs Korpershoek5284c7e2020-09-21 11:03:35 +0000221
222// Used by hwcomposer.drm_mediatek
223filegroup {
224 name: "drm_hwcomposer_platformmediatek",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300225 srcs: ["bufferinfo/legacy/BufferInfoMaliMediatek.cpp"],
Mattijs Korpershoek5284c7e2020-09-21 11:03:35 +0000226}
Jason Macnak1f263842024-09-18 13:27:18 -0700227
228prebuilt_etc {
229 name: "drm_hwcomposer_hwc3_apex_vintf",
230 src: "hwc3/hwc3-drm.xml",
231 sub_dir: "vintf",
232 vendor: true,
233 installable: false,
234}
235
236prebuilt_etc {
237 name: "drm_hwcomposer_hwc3_apex_init_rc",
238 filename_from_src: true,
239 vendor: true,
240 src: ":gen-drm_hwcomposer_hwc3_apex_init_rc",
241}
242
243genrule {
244 name: "gen-drm_hwcomposer_hwc3_apex_init_rc",
245 srcs: ["hwc3/hwc3-drm.rc"],
246 out: ["hwc3-drm.apex.rc"],
247 cmd: "sed " +
248 // Update the binary location to inside the Apex:
249 "-e 's%/vendor/bin/%/apex/com.android.hardware.graphics.composer/bin/%' " +
250 "$(in) > $(out)",
251}
252
253filegroup {
254 name: "drm_hwcomposer_hwc3_apex_file_contexts",
255 srcs: [
256 "hwc3/hwc3-apex-file-contexts",
257 ],
258}
259
260filegroup {
261 name: "drm_hwcomposer_hwc3_apex_manifest",
262 srcs: [
263 "hwc3/hwc3-apex-manifest.json",
264 ],
265}
266
267apex {
268 name: "com.android.hardware.graphics.composer.drm_hwcomposer",
269 key: "com.android.hardware.key",
270 certificate: ":com.android.hardware.certificate",
271 file_contexts: ":drm_hwcomposer_hwc3_apex_file_contexts",
272 manifest: ":drm_hwcomposer_hwc3_apex_manifest",
273 vendor: true,
274 updatable: false,
275 soc_specific: true,
276 binaries: [
277 "android.hardware.composer.hwc3-service.drm",
278 ],
279 prebuilts: [
280 "drm_hwcomposer_hwc3_apex_init_rc",
281 "drm_hwcomposer_hwc3_apex_vintf",
282 ],
283}