#
# qmake configuration for 64-bit Tegra X1 boards, like the DRIVE CX, using Vibrante Integrity
#
# A typical configure line might look like:
# configure \
#   -device integrity-armv8-drive-cx \
#   -device-option VIBRANTE_INTEGRITY_PDK_TOPDIR=/opt/nvidia/vibrante-t186ref-integrity
#   -static \
#   -opengl es2

load(device_config)

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

DEFINES += WIN_INTERFACE_CUSTOM

QT_QPA_DEFAULT_PLATFORM = eglfs

QMAKE_LIBS_EGL         += -lEGL -lGLESv2 -lnvidia-glsi -lnvidia-eglcore -lnvidia-rmapi-tegra -lposix -livfs -ldrm-nvdc -lnvll -lnvdc -lnvrm -lnvrm_gpu -lnvrm_graphics -lnvos -lsocket -lnet -lnvtegrahv
QMAKE_LIBS_OPENGL_ES2  += $${QMAKE_LIBS_EGL}

EGLFS_DEVICE_INTEGRATION = eglfs_kms_egldevice

# Vibrante Integrity PDK headers & libraries
QMAKE_INCDIR += $${VIBRANTE_INTEGRITY_PDK_TOPDIR}/include
QMAKE_LIBDIR += $${VIBRANTE_INTEGRITY_PDK_TOPDIR}/libs

# OpenGL libraries have a dependency on libEGL
QMAKE_INCDIR_EGL = $${VIBRANTE_INTEGRITY_PDK_TOPDIR}/include
QMAKE_LIBDIR_EGL = $${VIBRANTE_INTEGRITY_PDK_TOPDIR}/libs
QMAKE_INCDIR_OPENGL_ES2 = $${VIBRANTE_INTEGRITY_PDK_TOPDIR}/include
QMAKE_LIBDIR_OPENGL_ES2 = $${VIBRANTE_INTEGRITY_PDK_TOPDIR}/libs

defineTest(qtConfSanitizeMkspec) {
    isEmpty(VIBRANTE_INTEGRITY_PDK_TOPDIR): \
        error("You must pass -device-option VIBRANTE_INTEGRITY_PDK_TOPDIR=/path/to/pdk")
}

load(qt_config)
