1LOCAL_PATH := $(call my-dir)
2include $(CLEAR_VARS)
3include $(LOCAL_PATH)/../../../common.mk
4
5ifeq ($(use_hwc2),true)
6
7LOCAL_MODULE                  := hwcomposer.$(TARGET_BOARD_PLATFORM)
8LOCAL_LICENSE_KINDS           := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD legacy_not_a_contribution
9LOCAL_LICENSE_CONDITIONS      := by_exception_only not_allowed notice
10LOCAL_VENDOR_MODULE           := true
11LOCAL_MODULE_RELATIVE_PATH    := hw
12LOCAL_MODULE_TAGS             := optional
13LOCAL_C_INCLUDES              := $(common_includes)
14LOCAL_HEADER_LIBRARIES        := display_headers
15
16LOCAL_CFLAGS                  := -Wno-missing-field-initializers -Wno-unused-parameter \
17                                 -fcolor-diagnostics\
18                                 -DLOG_TAG=\"SDM\" $(common_flags) \
19                                 -I $(display_top)/sdm/libs/hwc
20ifeq ($(TARGET_EXCLUDES_DISPLAY_PP), true)
21LOCAL_CFLAGS += -DEXCLUDE_DISPLAY_PP
22endif
23
24LOCAL_CLANG                   := true
25
26# For enabling the fake display
27ifneq ($(TARGET_HAS_NO_DISPLAY),true)
28
29# TODO: Remove libui after addressing gpu_tonemapper issues
30LOCAL_SHARED_LIBRARIES        := libsdmcore libqservice libbinder libhardware libhardware_legacy \
31                                 libutils libcutils libsync libqdutils libqdMetaData libdl libdrmutils \
32                                 libsdmutils libc++ liblog libgrallocutils libdl \
33                                 vendor.display.config@1.0 libhidlbase \
34                                 libui libgpu_tonemapper
35
36ifneq ($(TARGET_USES_GRALLOC1), true)
37    LOCAL_SHARED_LIBRARIES += libmemalloc
38endif
39
40ifeq ($(display_config_version), DISPLAY_CONFIG_1_1)
41LOCAL_SHARED_LIBRARIES        += vendor.display.config@1.1
42endif
43
44# Allow implicit fallthroughs in hwc_display.cpp until they are fixed.
45LOCAL_CFLAGS                  += -Wno-implicit-fallthrough
46
47LOCAL_SRC_FILES               := hwc_session.cpp \
48                                 hwc_session_services.cpp \
49                                 hwc_display.cpp \
50                                 hwc_display_primary.cpp \
51                                 hwc_display_external.cpp \
52                                 hwc_display_virtual.cpp \
53                                 ../hwc/hwc_debugger.cpp \
54                                 ../hwc/hwc_buffer_sync_handler.cpp \
55                                 hwc_color_manager.cpp \
56                                 hwc_layers.cpp \
57                                 hwc_callbacks.cpp \
58                                 ../hwc/cpuhint.cpp \
59                                 ../hwc/hwc_socket_handler.cpp \
60                                 display_null.cpp \
61                                 hwc_tonemapper.cpp \
62                                 hwc_display_external_test.cpp
63
64ifneq ($(TARGET_USES_GRALLOC1), true)
65    LOCAL_SRC_FILES += ../hwc/hwc_buffer_allocator.cpp
66else
67    LOCAL_SRC_FILES += hwc_buffer_allocator.cpp
68endif
69
70ifeq ($(TARGET_HAS_WIDE_COLOR_DISPLAY), true)
71    LOCAL_CFLAGS += -DFEATURE_WIDE_COLOR
72endif
73
74else #Target does not have display
75LOCAL_SHARED_LIBRARIES :=  libc++ liblog libutils
76LOCAL_SRC_FILES := hwcomposer.cpp
77endif #ifneq ($(TARGET_HAS_NO_DISPLAY),true)
78
79include $(BUILD_SHARED_LIBRARY)
80endif
81