blob: 24d4d990340fa44aa732217343f59315b7370dcc [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
Bob Badour86bdae72021-02-12 15:32:15 -080015package {
16 default_applicable_licenses: ["external_drm_hwcomposer_license"],
17}
18
19// Added automatically by a large-scale-change
20// See: http://go/android-license-faq
21license {
22 name: "external_drm_hwcomposer_license",
23 visibility: [":__subpackages__"],
24 license_kinds: [
25 "SPDX-license-identifier-Apache-2.0",
26 ],
27 license_text: [
28 "NOTICE",
29 ],
30}
31
Roman Stratiienko4dfa62d2022-11-16 15:16:39 +020032cc_library_headers {
33 name: "drm_hwcomposer_headers",
Colin Crosscdf4b492019-03-22 13:13:12 -070034 vendor: true,
Roman Stratiienko4dfa62d2022-11-16 15:16:39 +020035 export_include_dirs: ["."],
Colin Crosscdf4b492019-03-22 13:13:12 -070036}
37
38// =====================
39// hwcomposer.drm.so
40// =====================
41cc_defaults {
42 name: "hwcomposer.drm_defaults",
43
44 shared_libs: [
Drew Davenport5951b112024-08-05 09:44:27 -060045 "android.hardware.graphics.composer@2.1-resources",
46 "android.hardware.graphics.composer@2.2-resources",
Colin Crosscdf4b492019-03-22 13:13:12 -070047 "libcutils",
48 "libdrm",
49 "libhardware",
Roman Stratiienkoadd24cb2020-10-23 22:28:38 +030050 "libhidlbase",
Colin Crosscdf4b492019-03-22 13:13:12 -070051 "liblog",
52 "libsync",
53 "libui",
54 "libutils",
55 ],
56
Drew Davenport5951b112024-08-05 09:44:27 -060057 static_libs: [
58 "libaidlcommonsupport",
59 ],
60
61 header_libs: [
62 "drm_hwcomposer_headers",
63 ],
Colin Crosscdf4b492019-03-22 13:13:12 -070064
Colin Crosscce12782019-03-29 10:27:23 -070065 cflags: [
66 "-Wall",
67 "-Werror",
68 ],
69
70 cppflags: [
Colin Crosscce12782019-03-29 10:27:23 -070071 "-DHWC2_INCLUDE_STRINGIFICATION",
Roman Stratiienkod6659982021-02-27 22:08:51 +020072 "-DHWC2_USE_CPP11",
Colin Crosscce12782019-03-29 10:27:23 -070073 ],
74
Drew Davenportb6eb4b82024-10-29 09:16:00 -060075 cpp_std: "gnu++17",
76
Colin Crosscce12782019-03-29 10:27:23 -070077 relative_install_path: "hw",
78 vendor: true,
79}
Roman Stratiienkod6659982021-02-27 22:08:51 +020080
Roman Stratiienko0ee8f582021-10-28 15:52:38 +030081filegroup {
Roman Stratiienkobdc43822023-06-27 21:23:50 +030082 name: "drm_hwcomposer_fd",
83 srcs: ["utils/fd.cpp"],
84}
85
86filegroup {
Roman Stratiienko0ee8f582021-10-28 15:52:38 +030087 name: "drm_hwcomposer_common",
Colin Crosscdf4b492019-03-22 13:13:12 -070088 srcs: [
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +030089 "bufferinfo/BufferInfoGetter.cpp",
90 "bufferinfo/BufferInfoMapperMetadata.cpp",
91
Roman Stratiienko9362cef2022-02-02 09:53:50 +020092 "compositor/DrmKmsPlan.cpp",
Roman Stratiienko22fe9612023-01-17 21:22:29 +020093 "compositor/FlatteningController.cpp",
Sean Paul27cd4802019-04-02 16:57:20 -040094
Roman Stratiienko4e994052022-02-09 17:40:35 +020095 "drm/DrmAtomicStateManager.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +030096 "drm/DrmConnector.cpp",
97 "drm/DrmCrtc.cpp",
98 "drm/DrmDevice.cpp",
Roman Stratiienkocad8e0c2022-01-31 16:40:16 +020099 "drm/DrmDisplayPipeline.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +0300100 "drm/DrmEncoder.cpp",
Roman Stratiienko8666dc92021-02-09 17:49:55 +0200101 "drm/DrmFbImporter.cpp",
Roman Stratiienko57ba08a2024-10-17 01:48:10 +0300102 "drm/DrmHwc.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +0300103 "drm/DrmMode.cpp",
104 "drm/DrmPlane.cpp",
105 "drm/DrmProperty.cpp",
106 "drm/ResourceManager.cpp",
Roman Stratiienko1e053b42021-10-25 22:54:20 +0300107 "drm/UEventListener.cpp",
Roman Stratiienko13cc3662020-08-29 21:35:39 +0300108 "drm/VSyncWorker.cpp",
Sean Paul27cd4802019-04-02 16:57:20 -0400109
Roman Stratiienko13cc3662020-08-29 21:35:39 +0300110 "backend/Backend.cpp",
111 "backend/BackendClient.cpp",
Roman Stratiienkod6659982021-02-27 22:08:51 +0200112 "backend/BackendManager.cpp",
Roman Stratiienko26fd2b22022-01-04 12:59:29 +0200113
Roman Stratiienko3e168902022-01-04 16:13:12 +0200114 "hwc2_device/DrmHwcTwo.cpp",
Roman Stratiienko3627beb2022-01-04 16:02:55 +0200115 "hwc2_device/HwcDisplay.cpp",
Roman Stratiienko0137f862022-01-04 18:27:40 +0200116 "hwc2_device/HwcDisplayConfigs.cpp",
Roman Stratiienko03fd35c2022-01-04 14:30:37 +0200117 "hwc2_device/HwcLayer.cpp",
Roman Stratiienko26fd2b22022-01-04 12:59:29 +0200118 "hwc2_device/hwc2_device.cpp",
Roman Stratiienko76892782023-01-16 17:15:53 +0200119
120 "utils/fd.cpp",
Tim Van Patten16933c32024-11-08 16:41:39 -0700121 "utils/properties.cpp",
Colin Crosscdf4b492019-03-22 13:13:12 -0700122 ],
Colin Crosscdf4b492019-03-22 13:13:12 -0700123}
124
Dennis Tsiang33f0ece2023-11-29 12:45:04 +0000125filegroup {
126 name: "drm_hwcomposer_hwc3",
127 srcs: [
128 "hwc3/Composer.cpp",
129 "hwc3/ComposerClient.cpp",
Drew Davenport5951b112024-08-05 09:44:27 -0600130 "hwc3/ComposerResources.cpp",
131 "hwc3/DrmHwcThree.cpp",
132 "hwc3/Utils.cpp",
Dennis Tsiang33f0ece2023-11-29 12:45:04 +0000133 ],
134}
135
136filegroup {
137 name: "drm_hwcomposer_service",
138 srcs: [
139 "hwc3/service.cpp",
140 ],
141}
142
143filegroup {
144 name: "drm_hwcomposer_init_rc",
145 srcs: [
146 "hwc3/hwc3-drm.rc",
147 ],
148}
149
150filegroup {
151 name: "drm_hwcomposer_vintf_manifest",
152 srcs: [
153 "hwc3/hwc3-drm.xml",
154 ],
155}
156
Roman Stratiienko0ee8f582021-10-28 15:52:38 +0300157// Kept only for compatibility with older Android version. Please do not use!
158cc_library_static {
159 name: "drm_hwcomposer",
160 defaults: ["hwcomposer.drm_defaults"],
161 srcs: [":drm_hwcomposer_common"],
162}
163
Colin Crosscdf4b492019-03-22 13:13:12 -0700164cc_library_shared {
165 name: "hwcomposer.drm",
166 defaults: ["hwcomposer.drm_defaults"],
Roman Stratiienko0ee8f582021-10-28 15:52:38 +0300167 srcs: [
168 ":drm_hwcomposer_common",
169 "bufferinfo/legacy/BufferInfoLibdrm.cpp",
170 ],
171 cflags: ["-DUSE_IMAPPER4_METADATA_API"],
Colin Crosscdf4b492019-03-22 13:13:12 -0700172}
173
174cc_library_shared {
Colin Crosscdf4b492019-03-22 13:13:12 -0700175 name: "hwcomposer.drm_minigbm",
176 defaults: ["hwcomposer.drm_defaults"],
Roman Stratiienko0ee8f582021-10-28 15:52:38 +0300177 srcs: [
178 ":drm_hwcomposer_common",
179 "bufferinfo/legacy/BufferInfoMinigbm.cpp",
180 ],
Colin Crosscdf4b492019-03-22 13:13:12 -0700181}
182
Drew Davenport6b56ace2024-07-17 09:15:37 -0600183cc_binary {
184 name: "android.hardware.composer.hwc3-service.drm",
185
186 srcs: [
Roman Stratiienko57ba08a2024-10-17 01:48:10 +0300187 ":drm_hwcomposer_common",
Mykhailo Androsiukd44ffc72024-09-12 12:24:55 +0300188 ":drm_hwcomposer_hwc3",
189 ":drm_hwcomposer_service",
Mykhailo Androsiukd44ffc72024-09-12 12:24:55 +0300190 "bufferinfo/legacy/BufferInfoLibdrm.cpp",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600191 ],
192
193 defaults: [
194 "hwcomposer.drm_defaults",
195 ],
196
197 shared_libs: [
Jason Macnakbb9f3ea2024-09-19 09:29:55 -0700198 "android.hardware.graphics.composer3-V4-ndk",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600199 "libbase",
Drew Davenport6b56ace2024-07-17 09:15:37 -0600200 "libbinder_ndk",
201 "liblog",
202 "libutils",
203 ],
204
205 cflags: [
206 "-Wall",
207 "-Werror",
208
209 "-DUSE_IMAPPER4_METADATA_API",
210 ],
211
212 cppflags: [
213 "-DHWC2_INCLUDE_STRINGIFICATION",
214 "-DHWC2_USE_CPP11",
215 ],
216
217 relative_install_path: "hw",
218 vendor: true,
219
220 vintf_fragments: [":drm_hwcomposer_vintf_manifest"],
221 init_rc: [":drm_hwcomposer_init_rc"],
222}
223
Roman Stratiienkoe3ed48d2019-10-17 17:42:36 +0300224// Used by hwcomposer.drm_imagination
225filegroup {
226 name: "drm_hwcomposer_platformimagination",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300227 srcs: ["bufferinfo/legacy/BufferInfoImagination.cpp"],
Roman Stratiienkoe3ed48d2019-10-17 17:42:36 +0300228}
229
Colin Crosscce12782019-03-29 10:27:23 -0700230// Used by hwcomposer.drm_hikey and hwcomposer.drm_hikey960
231filegroup {
232 name: "drm_hwcomposer_platformhisi",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300233 srcs: ["bufferinfo/legacy/BufferInfoMaliHisi.cpp"],
Colin Crosscce12782019-03-29 10:27:23 -0700234}
Neil Armstrong17d3c8b2019-04-25 15:17:22 +0000235
236// Used by hwcomposer.drm_meson
237filegroup {
238 name: "drm_hwcomposer_platformmeson",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300239 srcs: ["bufferinfo/legacy/BufferInfoMaliMeson.cpp"],
Neil Armstrong17d3c8b2019-04-25 15:17:22 +0000240}
Mattijs Korpershoek5284c7e2020-09-21 11:03:35 +0000241
242// Used by hwcomposer.drm_mediatek
243filegroup {
244 name: "drm_hwcomposer_platformmediatek",
Roman Stratiienkob2e9fe22020-10-03 10:52:36 +0300245 srcs: ["bufferinfo/legacy/BufferInfoMaliMediatek.cpp"],
Mattijs Korpershoek5284c7e2020-09-21 11:03:35 +0000246}
Jason Macnak1f263842024-09-18 13:27:18 -0700247
248prebuilt_etc {
249 name: "drm_hwcomposer_hwc3_apex_vintf",
250 src: "hwc3/hwc3-drm.xml",
251 sub_dir: "vintf",
252 vendor: true,
253 installable: false,
254}
255
256prebuilt_etc {
257 name: "drm_hwcomposer_hwc3_apex_init_rc",
258 filename_from_src: true,
259 vendor: true,
260 src: ":gen-drm_hwcomposer_hwc3_apex_init_rc",
261}
262
263genrule {
264 name: "gen-drm_hwcomposer_hwc3_apex_init_rc",
265 srcs: ["hwc3/hwc3-drm.rc"],
266 out: ["hwc3-drm.apex.rc"],
267 cmd: "sed " +
268 // Update the binary location to inside the Apex:
269 "-e 's%/vendor/bin/%/apex/com.android.hardware.graphics.composer/bin/%' " +
270 "$(in) > $(out)",
271}
272
273filegroup {
274 name: "drm_hwcomposer_hwc3_apex_file_contexts",
275 srcs: [
276 "hwc3/hwc3-apex-file-contexts",
277 ],
278}
279
280filegroup {
281 name: "drm_hwcomposer_hwc3_apex_manifest",
282 srcs: [
283 "hwc3/hwc3-apex-manifest.json",
284 ],
285}
286
287apex {
288 name: "com.android.hardware.graphics.composer.drm_hwcomposer",
289 key: "com.android.hardware.key",
290 certificate: ":com.android.hardware.certificate",
291 file_contexts: ":drm_hwcomposer_hwc3_apex_file_contexts",
292 manifest: ":drm_hwcomposer_hwc3_apex_manifest",
293 vendor: true,
294 updatable: false,
295 soc_specific: true,
296 binaries: [
297 "android.hardware.composer.hwc3-service.drm",
298 ],
299 prebuilts: [
300 "drm_hwcomposer_hwc3_apex_init_rc",
301 "drm_hwcomposer_hwc3_apex_vintf",
302 ],
303}