blob: 24d4d990340fa44aa732217343f59315b7370dcc [file] [log] [blame] [edit]
// 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-V4-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",
],
}