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 "libcutils", 46 "libdrm", 47 "libhardware", 48 "libhidlbase", 49 "liblog", 50 "libsync", 51 "libui", 52 "libutils", 53 ], 54 55 static_libs: [ 56 "libaidlcommonsupport", 57 "libdisplay_info", 58 ], 59 60 header_libs: [ 61 "drm_hwcomposer_headers", 62 ], 63 64 cflags: [ 65 "-Wall", 66 "-Werror", 67 ], 68 69 cppflags: [ 70 "-DHAS_LIBDISPLAY_INFO", 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/LibdisplayEdidWrapper.cpp", 121 "utils/fd.cpp", 122 "utils/properties.cpp", 123 ], 124} 125 126filegroup { 127 name: "drm_hwcomposer_hwc3", 128 srcs: [ 129 "hwc3/Composer.cpp", 130 "hwc3/ComposerClient.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 157cc_defaults { 158 name: "android.hardware.composer.hwc3-service.drm.defaults", 159 160 srcs: [ 161 ":drm_hwcomposer_common", 162 ":drm_hwcomposer_hwc3", 163 ":drm_hwcomposer_service", 164 ], 165 166 defaults: [ 167 "hwcomposer.drm_defaults", 168 ], 169 170 shared_libs: [ 171 "android.hardware.graphics.composer3-V4-ndk", 172 "libbase", 173 "libbinder_ndk", 174 "liblog", 175 "libutils", 176 ], 177 178 cflags: [ 179 "-DUSE_IMAPPER4_METADATA_API", 180 "-Wall", 181 "-Werror", 182 ], 183 184 cppflags: [ 185 "-DHWC2_INCLUDE_STRINGIFICATION", 186 "-DHWC2_USE_CPP11", 187 ], 188} 189 190cc_binary { 191 name: "android.hardware.composer.hwc3-service.drm", 192 193 defaults: [ 194 "android.hardware.composer.hwc3-service.drm.defaults", 195 ], 196 197 srcs: ["bufferinfo/legacy/BufferInfoLibdrm.cpp"], 198 199 relative_install_path: "hw", 200 vendor: true, 201 202 vintf_fragments: [":drm_hwcomposer_vintf_manifest"], 203 init_rc: [":drm_hwcomposer_init_rc"], 204} 205 206// Used by hwcomposer.drm_imagination 207filegroup { 208 name: "drm_hwcomposer_platformimagination", 209 srcs: ["bufferinfo/legacy/BufferInfoImagination.cpp"], 210} 211 212// Used by hwcomposer.drm_hikey and hwcomposer.drm_hikey960 213filegroup { 214 name: "drm_hwcomposer_platformhisi", 215 srcs: ["bufferinfo/legacy/BufferInfoMaliHisi.cpp"], 216} 217 218// Used by hwcomposer.drm_meson 219filegroup { 220 name: "drm_hwcomposer_platformmeson", 221 srcs: ["bufferinfo/legacy/BufferInfoMaliMeson.cpp"], 222} 223 224// Used by hwcomposer.drm_mediatek 225filegroup { 226 name: "drm_hwcomposer_platformmediatek", 227 srcs: ["bufferinfo/legacy/BufferInfoMaliMediatek.cpp"], 228} 229 230prebuilt_etc { 231 name: "drm_hwcomposer_hwc3_apex_vintf", 232 src: "hwc3/hwc3-drm.xml", 233 sub_dir: "vintf", 234 vendor: true, 235 installable: false, 236} 237 238prebuilt_etc { 239 name: "drm_hwcomposer_hwc3_apex_init_rc", 240 filename_from_src: true, 241 vendor: true, 242 src: ":gen-drm_hwcomposer_hwc3_apex_init_rc", 243} 244 245genrule { 246 name: "gen-drm_hwcomposer_hwc3_apex_init_rc", 247 srcs: ["hwc3/hwc3-drm.rc"], 248 out: ["hwc3-drm.apex.rc"], 249 cmd: "sed " + 250 // Update the binary location to inside the Apex: 251 "-e 's%/vendor/bin/%/apex/com.android.hardware.graphics.composer/bin/%' " + 252 "$(in) > $(out)", 253} 254 255filegroup { 256 name: "drm_hwcomposer_hwc3_apex_file_contexts", 257 srcs: [ 258 "hwc3/hwc3-apex-file-contexts", 259 ], 260} 261 262filegroup { 263 name: "drm_hwcomposer_hwc3_apex_manifest", 264 srcs: [ 265 "hwc3/hwc3-apex-manifest.json", 266 ], 267} 268 269apex { 270 name: "com.android.hardware.graphics.composer.drm_hwcomposer", 271 key: "com.android.hardware.key", 272 certificate: ":com.android.hardware.certificate", 273 file_contexts: ":drm_hwcomposer_hwc3_apex_file_contexts", 274 manifest: ":drm_hwcomposer_hwc3_apex_manifest", 275 vendor: true, 276 updatable: false, 277 soc_specific: true, 278 binaries: [ 279 "android.hardware.composer.hwc3-service.drm", 280 ], 281 prebuilts: [ 282 "drm_hwcomposer_hwc3_apex_init_rc", 283 "drm_hwcomposer_hwc3_apex_vintf", 284 ], 285} 286