xref: /aosp_15_r20/external/drm_hwcomposer/Android.bp (revision 0a9764fe0a15e71ebbeb85e87e10990c23aab47f)
1// 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
15package {
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
32cc_library_headers {
33    name: "drm_hwcomposer_headers",
34    vendor: true,
35    export_include_dirs: ["."],
36}
37
38// =====================
39// hwcomposer.drm.so
40// =====================
41cc_defaults {
42    name: "hwcomposer.drm_defaults",
43
44    shared_libs: [
45        "[email protected]",
46        "[email protected]",
47        "libcutils",
48        "libdrm",
49        "libhardware",
50        "libhidlbase",
51        "liblog",
52        "libsync",
53        "libui",
54        "libutils",
55    ],
56
57    static_libs: [
58        "libaidlcommonsupport",
59    ],
60
61    header_libs: [
62        "drm_hwcomposer_headers",
63    ],
64
65    cflags: [
66        "-Wall",
67        "-Werror",
68    ],
69
70    cppflags: [
71        "-DHWC2_INCLUDE_STRINGIFICATION",
72        "-DHWC2_USE_CPP11",
73    ],
74
75    cpp_std: "gnu++17",
76
77    relative_install_path: "hw",
78    vendor: true,
79}
80
81filegroup {
82    name: "drm_hwcomposer_fd",
83    srcs: ["utils/fd.cpp"],
84}
85
86filegroup {
87    name: "drm_hwcomposer_common",
88    srcs: [
89        "bufferinfo/BufferInfoGetter.cpp",
90        "bufferinfo/BufferInfoMapperMetadata.cpp",
91
92        "compositor/DrmKmsPlan.cpp",
93        "compositor/FlatteningController.cpp",
94
95        "drm/DrmAtomicStateManager.cpp",
96        "drm/DrmConnector.cpp",
97        "drm/DrmCrtc.cpp",
98        "drm/DrmDevice.cpp",
99        "drm/DrmDisplayPipeline.cpp",
100        "drm/DrmEncoder.cpp",
101        "drm/DrmFbImporter.cpp",
102        "drm/DrmHwc.cpp",
103        "drm/DrmMode.cpp",
104        "drm/DrmPlane.cpp",
105        "drm/DrmProperty.cpp",
106        "drm/ResourceManager.cpp",
107        "drm/UEventListener.cpp",
108        "drm/VSyncWorker.cpp",
109
110        "backend/Backend.cpp",
111        "backend/BackendClient.cpp",
112        "backend/BackendManager.cpp",
113
114        "hwc2_device/DrmHwcTwo.cpp",
115        "hwc2_device/HwcDisplay.cpp",
116        "hwc2_device/HwcDisplayConfigs.cpp",
117        "hwc2_device/HwcLayer.cpp",
118        "hwc2_device/hwc2_device.cpp",
119
120        "utils/fd.cpp",
121        "utils/properties.cpp",
122    ],
123}
124
125filegroup {
126    name: "drm_hwcomposer_hwc3",
127    srcs: [
128        "hwc3/Composer.cpp",
129        "hwc3/ComposerClient.cpp",
130        "hwc3/ComposerResources.cpp",
131        "hwc3/DrmHwcThree.cpp",
132        "hwc3/Utils.cpp",
133    ],
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
157// 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
164cc_library_shared {
165    name: "hwcomposer.drm",
166    defaults: ["hwcomposer.drm_defaults"],
167    srcs: [
168        ":drm_hwcomposer_common",
169        "bufferinfo/legacy/BufferInfoLibdrm.cpp",
170    ],
171    cflags: ["-DUSE_IMAPPER4_METADATA_API"],
172}
173
174cc_library_shared {
175    name: "hwcomposer.drm_minigbm",
176    defaults: ["hwcomposer.drm_defaults"],
177    srcs: [
178        ":drm_hwcomposer_common",
179        "bufferinfo/legacy/BufferInfoMinigbm.cpp",
180    ],
181}
182
183cc_binary {
184    name: "android.hardware.composer.hwc3-service.drm",
185
186    srcs: [
187        ":drm_hwcomposer_common",
188        ":drm_hwcomposer_hwc3",
189        ":drm_hwcomposer_service",
190        "bufferinfo/legacy/BufferInfoLibdrm.cpp",
191    ],
192
193    defaults: [
194        "hwcomposer.drm_defaults",
195    ],
196
197    shared_libs: [
198        "android.hardware.graphics.composer3-V4-ndk",
199        "libbase",
200        "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
224// Used by hwcomposer.drm_imagination
225filegroup {
226    name: "drm_hwcomposer_platformimagination",
227    srcs: ["bufferinfo/legacy/BufferInfoImagination.cpp"],
228}
229
230// Used by hwcomposer.drm_hikey and hwcomposer.drm_hikey960
231filegroup {
232    name: "drm_hwcomposer_platformhisi",
233    srcs: ["bufferinfo/legacy/BufferInfoMaliHisi.cpp"],
234}
235
236// Used by hwcomposer.drm_meson
237filegroup {
238    name: "drm_hwcomposer_platformmeson",
239    srcs: ["bufferinfo/legacy/BufferInfoMaliMeson.cpp"],
240}
241
242// Used by hwcomposer.drm_mediatek
243filegroup {
244    name: "drm_hwcomposer_platformmediatek",
245    srcs: ["bufferinfo/legacy/BufferInfoMaliMediatek.cpp"],
246}
247
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}
304