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