// Copyright (C) 2015 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package { default_applicable_licenses: ["external_drm_hwcomposer_license"], } // Added automatically by a large-scale-change // See: http://go/android-license-faq license { name: "external_drm_hwcomposer_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", ], license_text: [ "NOTICE", ], } cc_library_headers { name: "drm_hwcomposer_headers", vendor: true, export_include_dirs: ["."], } // ===================== // hwcomposer.drm.so // ===================== cc_defaults { name: "hwcomposer.drm_defaults", shared_libs: [ "android.hardware.graphics.composer@2.1-resources", "android.hardware.graphics.composer@2.2-resources", "libcutils", "libdrm", "libhardware", "libhidlbase", "liblog", "libsync", "libui", "libutils", ], static_libs: [ "libaidlcommonsupport", ], header_libs: [ "drm_hwcomposer_headers", ], cflags: [ "-Wall", "-Werror", ], cppflags: [ "-DHWC2_INCLUDE_STRINGIFICATION", "-DHWC2_USE_CPP11", ], cpp_std: "gnu++17", relative_install_path: "hw", vendor: true, } filegroup { name: "drm_hwcomposer_fd", srcs: ["utils/fd.cpp"], } filegroup { name: "drm_hwcomposer_common", srcs: [ "bufferinfo/BufferInfoGetter.cpp", "bufferinfo/BufferInfoMapperMetadata.cpp", "compositor/DrmKmsPlan.cpp", "compositor/FlatteningController.cpp", "drm/DrmAtomicStateManager.cpp", "drm/DrmConnector.cpp", "drm/DrmCrtc.cpp", "drm/DrmDevice.cpp", "drm/DrmDisplayPipeline.cpp", "drm/DrmEncoder.cpp", "drm/DrmFbImporter.cpp", "drm/DrmHwc.cpp", "drm/DrmMode.cpp", "drm/DrmPlane.cpp", "drm/DrmProperty.cpp", "drm/ResourceManager.cpp", "drm/UEventListener.cpp", "drm/VSyncWorker.cpp", "backend/Backend.cpp", "backend/BackendClient.cpp", "backend/BackendManager.cpp", "hwc2_device/DrmHwcTwo.cpp", "hwc2_device/HwcDisplay.cpp", "hwc2_device/HwcDisplayConfigs.cpp", "hwc2_device/HwcLayer.cpp", "hwc2_device/hwc2_device.cpp", "utils/fd.cpp", "utils/properties.cpp", ], } filegroup { name: "drm_hwcomposer_hwc3", srcs: [ "hwc3/Composer.cpp", "hwc3/ComposerClient.cpp", "hwc3/ComposerResources.cpp", "hwc3/DrmHwcThree.cpp", "hwc3/Utils.cpp", ], } filegroup { name: "drm_hwcomposer_service", srcs: [ "hwc3/service.cpp", ], } filegroup { name: "drm_hwcomposer_init_rc", srcs: [ "hwc3/hwc3-drm.rc", ], } filegroup { name: "drm_hwcomposer_vintf_manifest", srcs: [ "hwc3/hwc3-drm.xml", ], } // Kept only for compatibility with older Android version. Please do not use! cc_library_static { name: "drm_hwcomposer", defaults: ["hwcomposer.drm_defaults"], srcs: [":drm_hwcomposer_common"], } cc_library_shared { name: "hwcomposer.drm", defaults: ["hwcomposer.drm_defaults"], srcs: [ ":drm_hwcomposer_common", "bufferinfo/legacy/BufferInfoLibdrm.cpp", ], cflags: ["-DUSE_IMAPPER4_METADATA_API"], } cc_library_shared { name: "hwcomposer.drm_minigbm", defaults: ["hwcomposer.drm_defaults"], srcs: [ ":drm_hwcomposer_common", "bufferinfo/legacy/BufferInfoMinigbm.cpp", ], } cc_binary { name: "android.hardware.composer.hwc3-service.drm", srcs: [ ":drm_hwcomposer_common", ":drm_hwcomposer_hwc3", ":drm_hwcomposer_service", "bufferinfo/legacy/BufferInfoLibdrm.cpp", ], defaults: [ "hwcomposer.drm_defaults", ], shared_libs: [ "android.hardware.graphics.composer3-V3-ndk", "libbase", "libbinder_ndk", "liblog", "libutils", ], cflags: [ "-Wall", "-Werror", "-DUSE_IMAPPER4_METADATA_API", ], cppflags: [ "-DHWC2_INCLUDE_STRINGIFICATION", "-DHWC2_USE_CPP11", ], relative_install_path: "hw", vendor: true, vintf_fragments: [":drm_hwcomposer_vintf_manifest"], init_rc: [":drm_hwcomposer_init_rc"], } // Used by hwcomposer.drm_imagination filegroup { name: "drm_hwcomposer_platformimagination", srcs: ["bufferinfo/legacy/BufferInfoImagination.cpp"], } // Used by hwcomposer.drm_hikey and hwcomposer.drm_hikey960 filegroup { name: "drm_hwcomposer_platformhisi", srcs: ["bufferinfo/legacy/BufferInfoMaliHisi.cpp"], } // Used by hwcomposer.drm_meson filegroup { name: "drm_hwcomposer_platformmeson", srcs: ["bufferinfo/legacy/BufferInfoMaliMeson.cpp"], } // Used by hwcomposer.drm_mediatek filegroup { name: "drm_hwcomposer_platformmediatek", srcs: ["bufferinfo/legacy/BufferInfoMaliMediatek.cpp"], } prebuilt_etc { name: "drm_hwcomposer_hwc3_apex_vintf", src: "hwc3/hwc3-drm.xml", sub_dir: "vintf", vendor: true, installable: false, } prebuilt_etc { name: "drm_hwcomposer_hwc3_apex_init_rc", filename_from_src: true, vendor: true, src: ":gen-drm_hwcomposer_hwc3_apex_init_rc", } genrule { name: "gen-drm_hwcomposer_hwc3_apex_init_rc", srcs: ["hwc3/hwc3-drm.rc"], out: ["hwc3-drm.apex.rc"], cmd: "sed " + // Update the binary location to inside the Apex: "-e 's%/vendor/bin/%/apex/com.android.hardware.graphics.composer/bin/%' " + "$(in) > $(out)", } filegroup { name: "drm_hwcomposer_hwc3_apex_file_contexts", srcs: [ "hwc3/hwc3-apex-file-contexts", ], } filegroup { name: "drm_hwcomposer_hwc3_apex_manifest", srcs: [ "hwc3/hwc3-apex-manifest.json", ], } apex { name: "com.android.hardware.graphics.composer.drm_hwcomposer", key: "com.android.hardware.key", certificate: ":com.android.hardware.certificate", file_contexts: ":drm_hwcomposer_hwc3_apex_file_contexts", manifest: ":drm_hwcomposer_hwc3_apex_manifest", vendor: true, updatable: false, soc_specific: true, binaries: [ "android.hardware.composer.hwc3-service.drm", ], prebuilts: [ "drm_hwcomposer_hwc3_apex_init_rc", "drm_hwcomposer_hwc3_apex_vintf", ], }