summaryrefslogtreecommitdiffstats
path: root/mkspecs/devices/linux-rpi3-vc4-g++
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/devices/linux-rpi3-vc4-g++')
-rw-r--r--mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf44
-rw-r--r--mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h34
2 files changed, 78 insertions, 0 deletions
diff --git a/mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf b/mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf
new file mode 100644
index 0000000000..75b6ad7db5
--- /dev/null
+++ b/mkspecs/devices/linux-rpi3-vc4-g++/qmake.conf
@@ -0,0 +1,44 @@
+# qmake configuration for the Raspberry Pi 3 (32-bit) using the
+# *experimental* VC4 driver for Mesa and DRM.
+#
+# This should allow accelerated EGL and OpenGL with eglfs via
+# KMS/DRM/GBM (instead of the Broadcom-specific backend), under X11
+# with xcb, and also enables (Qt)Wayland via the standard wayland-egl
+# path. See https://dri.freedesktop.org/wiki/VC4
+#
+# Note that this is not the same as the default, Broadcom proprietary
+# driver. Some functionality and extensions may therefore be missing,
+# in particular when it comes to accelerated multimedia (video,
+# camera).
+#
+# At the time of writing Raspbian has to be switched explicitly to the
+# experimental VC4 driver. To do this, run raspi-config and enable it
+# in Advanced Options -> GL Driver.
+#
+# Example configure command below. We disable using the GNU gold
+# linker as it apparently has issues with ARMv8. In the configure
+# output check that "EGLFS GBM .......... yes" is present, otherwise
+# eglfs will not be functional.
+#
+# ./configure -release -opengl es2 -device linux-rpi3-vc4-g++ \
+# -device-option CROSS_COMPILE=~/raspbian/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- \
+# -sysroot ~/raspbian/sysroot \
+# -prefix /usr/local/qt5pi -extprefix ~/raspbian/qt5pi -hostprefix ~/raspbian/qt5 \
+# -v -nomake examples -nomake tests -no-use-gold-linker
+
+include(../common/linux_device_pre.conf)
+
+QMAKE_LIBS_EGL += -lEGL
+QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL
+
+QMAKE_CFLAGS = -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+
+DISTRO_OPTS += hard-float
+DISTRO_OPTS += deb-multi-arch
+
+EGLFS_DEVICE_INTEGRATION = eglfs_kms
+
+include(../common/linux_arm_device_post.conf)
+
+load(qt_config)
diff --git a/mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h b/mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h
new file mode 100644
index 0000000000..6fe3b52454
--- /dev/null
+++ b/mkspecs/devices/linux-rpi3-vc4-g++/qplatformdefs.h
@@ -0,0 +1,34 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "../../linux-g++/qplatformdefs.h"