# Copyright (C) 2008 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.

ifndef TARGET_SOC_BASE
	TARGET_SOC_BASE := $(TARGET_SOC)
endif

LOCAL_SRC_FILES += \
	../../$(TARGET_SOC_BASE)/libhwc2.1/device/ExynosDeviceModule.cpp \
	../../$(TARGET_SOC_BASE)/libhwc2.1/device/ExynosResourceManagerModule.cpp \
	../../$(TARGET_SOC_BASE)/libhwc2.1/display/ExynosDisplayFbInterfaceModule.cpp \
	../../$(TARGET_SOC_BASE)/libhwc2.1/primarydisplay/ExynosPrimaryDisplayModule.cpp \
	../../$(TARGET_SOC_BASE)/libhwc2.1/primarydisplay/ExynosPrimaryDisplayFbInterfaceModule.cpp \
	../../$(TARGET_SOC_BASE)/libhwc2.1/externaldisplay/ExynosExternalDisplayModule.cpp \
	../../$(TARGET_SOC_BASE)/libhwc2.1/externaldisplay/ExynosExternalDisplayFbInterfaceModule.cpp \
	../../$(TARGET_SOC_BASE)/libhwc2.1/virtualdisplay/ExynosVirtualDisplayModule.cpp \
	../../$(TARGET_SOC_BASE)/libhwc2.1/resources/ExynosMPPModule.cpp
