android13/hardware/rockchip/hwcomposer/drmhwc2/Android.mk

354 lines
9.8 KiB
Makefile
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# Copyright (C) 2018 Fuzhou Rockchip Electronics Co.Ltd.
#
# Modification based on code covered by the Apache License, Version 2.0 (the "License").
# You may not use this software except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS TO YOU ON AN "AS IS" BASIS
# AND ANY AND ALL WARRANTIES AND REPRESENTATIONS WITH RESPECT TO SUCH SOFTWARE, WHETHER EXPRESS,
# IMPLIED, STATUTORY OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF TITLE,
# NON-INFRINGEMENT, MERCHANTABILITY, SATISFACTROY QUALITY, ACCURACY OR FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED.
#
# IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# 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.
LOCAL_PATH := $(call my-dir)
BOARD_USES_DRM_HWCOMPOSER2=false
BOARD_USES_DRM_HWCOMPOSER=false
# rk356x rk3588 rk3528 rk3562 use DrmHwc2
ifneq ($(filter rk356x rk3588 rk3528 rk3562, $(strip $(TARGET_BOARD_PLATFORM))), )
ifeq ($(strip $(BUILD_WITH_RK_EBOOK)),true)
BOARD_USES_DRM_HWCOMPOSER2=false
else # BUILD_WITH_RK_EBOOK
BOARD_USES_DRM_HWCOMPOSER2=true
endif # BUILD_WITH_RK_EBOOK
else
BOARD_USES_DRM_HWCOMPOSER2=false
endif
ifeq ($(strip $(BOARD_USES_DRM_HWCOMPOSER2)),true)
include $(CLEAR_VARS)
LOCAL_SHARED_LIBRARIES := \
libcutils \
libdrm \
libhardware \
liblog \
libui \
libutils \
libsync_vendor \
libtinyxml2 \
libbaseparameter \
librga
LOCAL_STATIC_LIBRARIES := \
libdrmhwcutils
LOCAL_C_INCLUDES := \
${LOCAL_PATH}/include \
external/libdrm \
external/libdrm/include/drm \
system/core \
system/core/libsync/include \
external/tinyxml2 \
hardware/rockchip/libbaseparameter \
hardware/rockchip/librga/include \
hardware/rockchip/librga/im2d_api
LOCAL_SRC_FILES := \
drmhwctwo.cpp \
drm/drmconnector.cpp \
drm/drmcrtc.cpp \
drm/drmdevice.cpp \
drm/drmencoder.cpp \
drm/drmeventlistener.cpp \
drm/drmmode.cpp \
drm/drmplane.cpp \
drm/drmproperty.cpp \
drm/drmcompositorworker.cpp \
resources/resourcemanager.cpp \
resources/resourcescache.cpp \
drm/vsyncworker.cpp \
drm/invalidateworker.cpp \
utils/autolock.cpp \
rockchip/compositor/drmdisplaycomposition.cpp \
rockchip/compositor/drmdisplaycompositor.cpp \
rockchip/utils/drmdebug.cpp \
rockchip/common/drmfence.cpp \
rockchip/common/drmlayer.cpp \
rockchip/common/drmtype.cpp \
rockchip/common/drmgralloc.cpp \
rockchip/common/drmbaseparameter.cpp \
rockchip/platform/common/platformdrmgeneric.cpp \
rockchip/platform/common/platform.cpp \
rockchip/platform/rk3399/drmvop3399.cpp \
rockchip/platform/rk356x/drmvop356x.cpp \
rockchip/platform/rk3588/drmvop3588.cpp \
rockchip/platform/rk3528/drmvop3528.cpp \
rockchip/platform/rk3562/drmvop3562.cpp \
rockchip/platform/rk3399/drmhwc3399.cpp \
rockchip/platform/rk356x/drmhwc356x.cpp \
rockchip/platform/rk3588/drmhwc3588.cpp \
rockchip/platform/rk3528/drmhwc3528.cpp \
rockchip/platform/rk3562/drmhwc3562.cpp \
rockchip/common/drmbufferqueue.cpp \
rockchip/common/drmbuffer.cpp \
rockchip/common/hdr/drmhdrparser.cpp \
rockchip/producer/drmvideoproducer.cpp \
rockchip/producer/vpcontext.cpp
LOCAL_CPPFLAGS += \
-DHWC2_USE_CPP11 \
-DHWC2_INCLUDE_STRINGIFICATION \
-DRK_DRM_GRALLOC \
-DUSE_HWC2 \
-DMALI_AFBC_GRALLOC \
-Wno-unreachable-code-loop-increment \
-DUSE_NO_ASPECT_RATIO \
-fPIC
ifneq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \< 31)))
LOCAL_CFLAGS += -DANDROID_S
LOCAL_HEADER_LIBRARIES += \
libhardware_rockchip_headers
endif
# API 30 -> Android 11.0
ifneq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \< 30)))
LOCAL_C_INCLUDES += \
hardware/rockchip/hwcomposer/drmhwc2/include
LOCAL_CPPFLAGS += -DANDROID_R
# Gralloc config:
ifeq ($(TARGET_RK_GRALLOC_VERSION),4) # Gralloc 4.0
LOCAL_CPPFLAGS += -DUSE_GRALLOC_4=1
LOCAL_SHARED_LIBRARIES += \
libhidlbase \
libgralloctypes \
android.hardware.graphics.mapper@4.0
LOCAL_SRC_FILES += \
rockchip/common/drmgralloc4.cpp
LOCAL_HEADER_LIBRARIES += \
libgralloc_headers
else
LOCAL_CPPFLAGS += -DUSE_GRALLOC_0=1
endif # Gralloc 4.0
else # Android 11
LOCAL_C_INCLUDES += \
hardware/rockchip/hwcomposer/include
endif
# Mali config:
# API 29 -> Android 10.0
ifneq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \< 29)))
LOCAL_CPPFLAGS += -DANDROID_Q
ifneq (,$(filter mali-tDVx mali-G52, $(TARGET_BOARD_PLATFORM_GPU)))
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/bifrost \
hardware/rockchip/libgralloc/bifrost/src
endif
ifneq (,$(filter mali-t860 mali-t760, $(TARGET_BOARD_PLATFORM_GPU)))
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/midgard
endif
ifneq (,$(filter mali400 mali450, $(TARGET_BOARD_PLATFORM_GPU)))
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/utgard
endif
ifeq ($(strip $(TARGET_BOARD_PLATFORM)),rk3368)
LOCAL_C_INCLUDES += \
system/core/libion/original-kernel-headers
endif
endif
# RK3528 config:
ifneq ($(filter rk3528, $(strip $(TARGET_BOARD_PLATFORM))),)
LOCAL_CPPFLAGS += -DRK3528=1
USE_HDR_PARSER=true
# Android 启用 HDR 功能
LOCAL_SHARED_LIBRARIES += \
libhdr_params_parser
LOCAL_CPPFLAGS += \
-DUSE_HDR_PARSER=1
# API 28/29 -> Android 9.0
ifeq (0,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \> 29)))
LOCAL_CPPFLAGS += -DANDROID_P=1
LOCAL_C_INCLUDES += \
hardware/rockchip/libgralloc/ \
system/core/liblog/include/
endif
endif
# SR
# BOARD_USES_LIBSVEP=true
ifeq ($(strip $(BOARD_USES_LIBSVEP)),true)
BOARD_USES_LIBSR=true
endif
ifeq ($(strip $(BOARD_USES_LIBSR)),true)
# in order to adapter old versionneed include two dir.
LOCAL_C_INCLUDES += \
hardware/rockchip/libsvep/include \
hardware/rockchip/libsvep/include/sr
LOCAL_SHARED_LIBRARIES += \
libsvepsr \
librknnrt-svep \
libOpenCL
LOCAL_CFLAGS += \
-DUSE_LIBSR=1
LOCAL_REQUIRED_MODULES += \
HwcSvepEnv.xml
endif
# MEMC
# BOARD_USES_LIBSVEP_MEMC=true
ifeq ($(strip $(BOARD_USES_LIBSVEP_MEMC)),true)
LOCAL_C_INCLUDES += \
hardware/rockchip/libsvep/include/memc
LOCAL_SHARED_LIBRARIES += \
libsvepmemc \
libOpenCL
LOCAL_CFLAGS += \
-DUSE_LIBSVEP_MEMC=1
LOCAL_REQUIRED_MODULES += \
HwcSvepMemcEnv.xml
endif
# BOARD_USES_LIBPQ=true
ifeq ($(strip $(BOARD_USES_LIBPQ)),true)
LOCAL_C_INCLUDES += \
hardware/rockchip/libpq/include
LOCAL_SHARED_LIBRARIES += \
libpq
LOCAL_CFLAGS += \
-DUSE_LIBPQ=1
endif
# GKI compile is true
# BOARD_BUILD_GKI=true
ifeq ($(strip $(BOARD_BUILD_GKI)),true)
LOCAL_CFLAGS += \
-DBOARD_BUILD_GKI=1
endif
# LOCAL_SANITIZE:=address
LOCAL_MODULE := hwcomposer.$(TARGET_BOARD_HARDWARE)
LOCAL_REQUIRED_MODULES += \
HwComposerEnv.xml
# API 26 -> Android 8.0
ifeq (1,$(strip $(shell expr $(PLATFORM_SDK_VERSION) \>= 26)))
LOCAL_PROPRIETARY_MODULE := true
endif
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS += \
-Wno-unused-function \
-Wno-unused-private-field \
-Wno-unused-function \
-Wno-unused-variable \
-Wno-unused-parameter \
-fPIC \
-Wno-sign-compare
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := $(TARGET_SHLIB_SUFFIX)
include $(BUILD_SHARED_LIBRARY)
## copy configs/*.xml from etc to /vendor/etc/init/hw
include $(CLEAR_VARS)
LOCAL_MODULE := HwComposerEnv.xml
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := configs/HwComposerEnv.xml
include $(BUILD_PREBUILT)
ifeq ($(strip $(BOARD_USES_LIBSVEP)),true)
## copy configs/*.xml from etc to /vendor/etc/init/hw
include $(CLEAR_VARS)
LOCAL_MODULE := HwcSvepEnv.xml
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := configs/HwcSvepEnv.xml
include $(BUILD_PREBUILT)
endif
ifeq ($(strip $(BOARD_USES_LIBSVEP_MEMC)),true)
## copy configs/*.xml from etc to /vendor/etc/init/hw
include $(CLEAR_VARS)
LOCAL_MODULE := HwcSvepMemcEnv.xml
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := configs/HwcSvepMemcEnv.xml
include $(BUILD_PREBUILT)
endif
ifeq ($(strip $(USE_HDR_PARSER)),true)
# libhdr_params_parser
TARGET_VIVID_HDR_PARSER_LIB_PATH := rockchip/common/hdr/vivid
include $(CLEAR_VARS)
LOCAL_MODULE := libhdr_params_parser
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
LOCAL_MODULE_SUFFIX := .so
LOCAL_VENDOR_MODULE := true
LOCAL_PROPRIETARY_MODULE := true
ifneq ($(strip $(TARGET_2ND_ARCH)), )
LOCAL_MULTILIB := both
LOCAL_SRC_FILES_$(TARGET_ARCH) := $(TARGET_VIVID_HDR_PARSER_LIB_PATH)/$(TARGET_ARCH)/libhdr_params_parser.so
LOCAL_SRC_FILES_$(TARGET_2ND_ARCH) := $(TARGET_VIVID_HDR_PARSER_LIB_PATH)/$(TARGET_2ND_ARCH)/libhdr_params_parser.so
else
LOCAL_SRC_FILES_$(TARGET_ARCH) := $(TARGET_VIVID_HDR_PARSER_LIB_PATH)/$(TARGET_ARCH)/libhdr_params_parser.so
endif
include $(BUILD_PREBUILT)
endif # USE_HDR_PARSER
endif # HWC2
ifeq ($(strip $(BOARD_USES_DRM_HWCOMPOSER2)),true)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif