blob: fab7a9830af8bc1338ca2fdabcdd885d943e5f41 [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",
Sasha McIntoshf8c14112024-12-11 12:03:32 -050042 "libdisplay_info",
Drew Davenport5951b112024-08-05 09:44:27 -060043 ],
44
45 header_libs: [
46 "drm_hwcomposer_headers",
47 ],
Colin Crosscdf4b492019-03-22 13:13:12 -070048
Colin Crosscce12782019-03-29 10:27:23 -070049 cflags: [
50 "-Wall",
51 "-Werror",
52 ],
53
54 cppflags: [
Sasha McIntoshf8c14112024-12-11 12:03:32 -050055 "-DHAS_LIBDISPLAY_INFO",
Colin Crosscce12782019-03-29 10:27:23 -070056 "-DHWC2_INCLUDE_STRINGIFICATION",
Roman Stratiienkod6659982021-02-27 22:08:51 +020057 "-DHWC2_USE_CPP11",
Colin Crosscce12782019-03-29 10:27:23 -070058 ],
59
Drew Davenportb6eb4b82024-10-29 09:16:00 -060060 cpp_std: "gnu++17",
61
Colin Crosscce12782019-03-29 10:27:23 -070062 relative_install_path: "hw",
63 vendor: true,
64}
Roman Stratiienkod6659982021-02-27 22:08:51 +020065
Roman Stratiienko0ee8f582021-10-28 15:52:38 +030066filegroup {
Roman Stratiienkobdc43822023-06-27 21:23:50 +030067 name: "drm_hwcomposer_fd",
68 srcs: ["utils/fd.cpp"],
69}
70
71filegroup {
Roman Stratiienko0ee8f582021-10-28 15:52:38 +030072 name: "drm_hwcomposer_common",
Colin Crosscdf4b492019-03-22 13:13:12 -070073 srcs: [
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +030074 "bufferinfo/BufferInfoGetter.cpp",
75 "bufferinfo/BufferInfoMapperMetadata.cpp",
76
Roman Stratiienko9362cef2022-02-02 09:53:50 +020077 "compositor/DrmKmsPlan.cpp",
Roman Stratiienko22fe9612023-01-17 21:22:29 +020078 "compositor/FlatteningController.cpp",
Sean Paul27cd4802019-04-02 16:57:20 -040079
Roman Stratiienko4e994052022-02-09 17:40:35 +020080 "drm/DrmAtomicStateManager.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +030081 "drm/DrmConnector.cpp",
82 "drm/DrmCrtc.cpp",
83 "drm/DrmDevice.cpp",
Roman Stratiienkocad8e0c2022-01-31 16:40:16 +020084 "drm/DrmDisplayPipeline.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +030085 "drm/DrmEncoder.cpp",
Roman Stratiienko8666dc92021-02-09 17:49:55 +020086 "drm/DrmFbImporter.cpp",
Roman Stratiienko57ba08a2024-10-17 01:48:10 +030087 "drm/DrmHwc.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +030088 "drm/DrmMode.cpp",
89 "drm/DrmPlane.cpp",
90 "drm/DrmProperty.cpp",
91 "drm/ResourceManager.cpp",
Roman Stratiienko1e053b42021-10-25 22:54:20 +030092 "drm/UEventListener.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +030093 "drm/VSyncWorker.cpp",
Sean Paul27cd4802019-04-02 16:57:20 -040094
Roman Stratiienko13cc3662020-08-29 21:35:39 +030095 "backend/Backend.cpp",
96 "backend/BackendClient.cpp",
Roman Stratiienkod6659982021-02-27 22:08:51 +020097 "backend/BackendManager.cpp",
Roman Stratiienko26fd2b22022-01-04 12:59:29 +020098
Roman Stratiienko3e168902022-01-04 16:13:12 +020099 "hwc2_device/DrmHwcTwo.cpp",
Roman Stratiienko3627beb2022-01-04 16:02:55 +0200100 "hwc2_device/HwcDisplay.cpp",
Roman Stratiienko0137f862022-01-04 18:27:40 +0200101 "hwc2_device/HwcDisplayConfigs.cpp",
Roman Stratiienko03fd35c2022-01-04 14:30:37 +0200102 "hwc2_device/HwcLayer.cpp",
Roman Stratiienko26fd2b22022-01-04 12:59:29 +0200103 "hwc2_device/hwc2_device.cpp",
Roman Stratiienko76892782023-01-16 17:15:53 +0200104
105 "utils/fd.cpp",
Tim Van Patten16933c32024-11-08 16:41:39 -0700106 "utils/properties.cpp",
Sasha McIntoshf9062b62024-11-12 10:55:06 -0500107 "utils/LibdisplayEdidWrapper.cpp",
Colin Crosscdf4b492019-03-22 13:13:12 -0700108 ],
Colin Crosscdf4b492019-03-22 13:13:12 -0700109}
110
Dennis Tsiang33f0ece2023-11-29 12:45:04 +0000111filegroup {
112 name: "drm_hwcomposer_hwc3",
113 srcs: [
114 "hwc3/Composer.cpp",
115 "hwc3/ComposerClient.cpp",
Drew Davenport5951b112024-08-05 09:44:27 -0600116 "hwc3/ComposerResources.cpp",
117 "hwc3/DrmHwcThree.cpp",
118 "hwc3/Utils.cpp",
Dennis Tsiang33f0ece2023-11-29 12:45:04 +0000119 ],
120}
121
122filegroup {
123 name: "drm_hwcomposer_service",
124 srcs: [
125 "hwc3/service.cpp",
126 ],
127}
128
129filegroup {
130 name: "drm_hwcomposer_init_rc",
131 srcs: [
132 "hwc3/hwc3-drm.rc",
133 ],
134}
135
136filegroup {
137 name: "drm_hwcomposer_vintf_manifest",
138 srcs: [
139 "hwc3/hwc3-drm.xml",
140 ],
141}
142
Drew Davenport0bc3df02024-11-19 14:53:31 -0700143cc_defaults {
144 name: "android.hardware.composer.hwc3-service.drm.defaults",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600145
146 srcs: [
Roman Stratiienko57ba08a2024-10-17 01:48:10 +0300147 ":drm_hwcomposer_common",
Mykhailo Androsiukd44ffc72024-09-12 12:24:55 +0300148 ":drm_hwcomposer_hwc3",
149 ":drm_hwcomposer_service",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600150 ],
151
152 defaults: [
153 "hwcomposer.drm_defaults",
154 ],
155
156 shared_libs: [
Drew Davenport7f1761b2024-08-20 10:09:43 -0600157 "android.hardware.graphics.composer3-V3-ndk",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600158 "libbase",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600159 "libbinder_ndk",
160 "liblog",
161 "libutils",
162 ],
163
164 cflags: [
Drew Davenport0bc3df02024-11-19 14:53:31 -0700165 "-DUSE_IMAPPER4_METADATA_API",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600166 "-Wall",
167 "-Werror",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600168 ],
169
170 cppflags: [
171 "-DHWC2_INCLUDE_STRINGIFICATION",
172 "-DHWC2_USE_CPP11",
173 ],
Drew Davenport0bc3df02024-11-19 14:53:31 -0700174}
175
176cc_binary {
177 name: "android.hardware.composer.hwc3-service.drm",
178
179 defaults: [
180 "android.hardware.composer.hwc3-service.drm.defaults",
181 ],
182
183 srcs: ["bufferinfo/legacy/BufferInfoLibdrm.cpp"],
Drew Davenport6b56ace2024-07-17 09:15:37 -0600184
185 relative_install_path: "hw",
186 vendor: true,
187
188 vintf_fragments: [":drm_hwcomposer_vintf_manifest"],
189 init_rc: [":drm_hwcomposer_init_rc"],
190}
191
Roman Stratiienkoe3ed48d2019-10-17 17:42:36 +0300192// Used by hwcomposer.drm_imagination
193filegroup {
194 name: "drm_hwcomposer_platformimagination",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300195 srcs: ["bufferinfo/legacy/BufferInfoImagination.cpp"],
Roman Stratiienkoe3ed48d2019-10-17 17:42:36 +0300196}
197
Colin Crosscce12782019-03-29 10:27:23 -0700198// Used by hwcomposer.drm_hikey and hwcomposer.drm_hikey960
199filegroup {
200 name: "drm_hwcomposer_platformhisi",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300201 srcs: ["bufferinfo/legacy/BufferInfoMaliHisi.cpp"],
Colin Crosscce12782019-03-29 10:27:23 -0700202}
Neil Armstrong17d3c8b2019-04-25 15:17:22 +0000203
204// Used by hwcomposer.drm_meson
205filegroup {
206 name: "drm_hwcomposer_platformmeson",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300207 srcs: ["bufferinfo/legacy/BufferInfoMaliMeson.cpp"],
Neil Armstrong17d3c8b2019-04-25 15:17:22 +0000208}
Mattijs Korpershoek5284c7e2020-09-21 11:03:35 +0000209
210// Used by hwcomposer.drm_mediatek
211filegroup {
212 name: "drm_hwcomposer_platformmediatek",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300213 srcs: ["bufferinfo/legacy/BufferInfoMaliMediatek.cpp"],
Mattijs Korpershoek5284c7e2020-09-21 11:03:35 +0000214}
Jason Macnak1f263842024-09-18 13:27:18 -0700215
216prebuilt_etc {
217 name: "drm_hwcomposer_hwc3_apex_vintf",
218 src: "hwc3/hwc3-drm.xml",
219 sub_dir: "vintf",
220 vendor: true,
221 installable: false,
222}
223
224prebuilt_etc {
225 name: "drm_hwcomposer_hwc3_apex_init_rc",
226 filename_from_src: true,
227 vendor: true,
228 src: ":gen-drm_hwcomposer_hwc3_apex_init_rc",
229}
230
231genrule {
232 name: "gen-drm_hwcomposer_hwc3_apex_init_rc",
233 srcs: ["hwc3/hwc3-drm.rc"],
234 out: ["hwc3-drm.apex.rc"],
235 cmd: "sed " +
236 // Update the binary location to inside the Apex:
237 "-e 's%/vendor/bin/%/apex/com.android.hardware.graphics.composer/bin/%' " +
238 "$(in) > $(out)",
239}
240
241filegroup {
242 name: "drm_hwcomposer_hwc3_apex_file_contexts",
243 srcs: [
244 "hwc3/hwc3-apex-file-contexts",
245 ],
246}
247
248filegroup {
249 name: "drm_hwcomposer_hwc3_apex_manifest",
250 srcs: [
251 "hwc3/hwc3-apex-manifest.json",
252 ],
253}
254
255apex {
256 name: "com.android.hardware.graphics.composer.drm_hwcomposer",
257 key: "com.android.hardware.key",
258 certificate: ":com.android.hardware.certificate",
259 file_contexts: ":drm_hwcomposer_hwc3_apex_file_contexts",
260 manifest: ":drm_hwcomposer_hwc3_apex_manifest",
261 vendor: true,
262 updatable: false,
263 soc_specific: true,
264 binaries: [
265 "android.hardware.composer.hwc3-service.drm",
266 ],
267 prebuilts: [
268 "drm_hwcomposer_hwc3_apex_init_rc",
269 "drm_hwcomposer_hwc3_apex_vintf",
270 ],
271}