#
# qmake configuration for INTEGRITY Qualcomm s820 Snapdragon MSM8996AU
#

load(device_config)

include(../../common/ghs-integrity-armv8.conf)

QT_QPA_DEFAULT_PLATFORM  = eglfs
EGLFS_DEVICE_INTEGRATION = eglfs_openwfd

bsp_name = $$(INTEGRITY_BSP)
isEmpty(bsp_name): \
    error("This qmakespec requires $INTEGRITY_BSP to be set")

os_directory = $$(INTEGRITY_DIR)
isEmpty(os_directory): \
    error("This qmakespec requires $INTEGRITY_DIR to be set")

qclibs_directory = $$(QCLIBS_DIR)
isEmpty(qclibs_directory): \
    error("This qmakespec requires $QCLIBS_DIR to be set")

qc_multimedia_inc_directory = $$(QC_MULTIMEDIA_INC_DIR)
isEmpty(qc_multimedia_inc_directory): \
    error("This qmakespec requires $QC_MULTIMEDIA_INC_DIR to be set")

gl_inc_directory = $$(GL_INC_DIR)
isEmpty(gl_inc_directory): \
    error("This qmakespec requires $GL_INC_DIR to be set")

gl_lib_directory = $$(GL_LIB_DIR)
isEmpty(gl_lib_directory): \
    error("This qmakespec requires $GL_LIB_DIR to be set")

QMAKE_INCDIR            += $$(QC_MULTIMEDIA_INC_DIR)

QMAKE_LIBS_EGL          += -lESXEGL_Adreno -lESXGLESv2_Adreno -ladreno_utils -lGSLUser -lOSUser -lpanel -livfs -lposix -lpmem -ltzbsp -lpaged_alloc -lglnext-llvm -lopenwfd -lplanedef -lmmosallibrary
QMAKE_LIBS_OPENGL_ES2   += $${QMAKE_LIBS_EGL}

QMAKE_CFLAGS            += -DINTEGRITY
QMAKE_CXXFLAGS          += -DINTEGRITY

QMAKE_CFLAGS            += -bigswitch
QMAKE_CXXFLAGS          += -bigswitch
QMAKE_LFLAGS            += -bigswitch

# OpenGL libraries have a dependency on libEGL
QMAKE_INCDIR_EGL = $$(GL_INC_DIR)
QMAKE_LIBDIR_EGL = $$(GL_LIB_DIR)
QMAKE_LIBDIR_EGL += $$(QCLIBS_DIR)/base
QMAKE_LIBDIR_EGL += $$(QCLIBS_DIR)/multimedia/display

QMAKE_INCDIR_OPENGL_ES2 = $$(GL_INC_DIR)
QMAKE_LIBDIR_OPENGL_ES2 = $$(GL_LIB_DIR)
QMAKE_LIBDIR_OPENGL_ES2 += $$(QCLIBS_DIR)/base
QMAKE_LIBDIR_OPENGL_ES2 += $$(QCLIBS_DIR)/multimedia/display

load(qt_config)
