# Qt5 has a mechanism to support "device" profiles, so that people can
# specify the compiler, compiler flags and so on for a specific device.

# We leverage this mechanism in the Buildroot packaging of qt5 to
# simplify cross-compilation: we have our own "device" definition, which
# allows us to easily pass the cross-compiler paths and flags from our
# qt5.mk.

include(../common/linux_device_pre.conf)

# modifications to g++-unix.conf
QMAKE_CC                = $${CROSS_COMPILE}gcc
QMAKE_CXX               = $${CROSS_COMPILE}g++

# modifications to gcc-base.conf
QMAKE_CFLAGS           += $${BR_COMPILER_CFLAGS}
QMAKE_CXXFLAGS         += $${BR_COMPILER_CXXFLAGS}
QMAKE_CXXFLAGS_RELEASE += -O3
CONFIG                 += nostrip

QMAKE_LIBS             += -lrt -lpthread -ldl
QMAKE_CFLAGS_ISYSTEM   =

# Architecturespecific configuration
include(arch.conf)

@EGLFS_DEVICE@

include(../common/linux_device_post.conf)
load(qt_config)
