summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorOleksandr Tymoshenko <gonzo@bluezbox.com>2016-10-04 17:56:11 -0700
committerOleksandr Tymoshenko <gonzo@bluezbox.com>2016-10-12 22:04:46 +0000
commit72efb2e6f4af2fd909daaf9104f09fd1425acfb0 (patch)
tree70afd37165a2e582097e14e651b6038c2b53d5ba /mkspecs
parent7a30dda40bd5e24235c88b610ee9e996ed910793 (diff)
mkspec: Add cross-compilation support for FreeBSD
Add conf files for -device qmake switch. It consists of two common pre/post includes for FreeBSD-base device. "freebsd-generic-clang" -device option for generic cross-compilation target, with bsdfb as default platform and freebsd-rasp-pi-clang option for Raspberry Pi (up to version 2) with OpenGL ES2 (eglfs) support Change-Id: I45d91c0512f60f2be438ce46e0485844c341188a Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/devices/common/freebsd_device_post.conf5
-rw-r--r--mkspecs/devices/common/freebsd_device_pre.conf27
-rw-r--r--mkspecs/devices/freebsd-generic-clang/qmake.conf9
-rw-r--r--mkspecs/devices/freebsd-generic-clang/qplatformdefs.h40
-rw-r--r--mkspecs/devices/freebsd-rasp-pi-clang/qmake.conf25
-rw-r--r--mkspecs/devices/freebsd-rasp-pi-clang/qplatformdefs.h40
6 files changed, 146 insertions, 0 deletions
diff --git a/mkspecs/devices/common/freebsd_device_post.conf b/mkspecs/devices/common/freebsd_device_post.conf
new file mode 100644
index 0000000000..1d9694af31
--- /dev/null
+++ b/mkspecs/devices/common/freebsd_device_post.conf
@@ -0,0 +1,5 @@
+QMAKE_CFLAGS += $$COMPILER_FLAGS
+QMAKE_CXXFLAGS += $$COMPILER_FLAGS
+QMAKE_LFLAGS += $$LINKER_FLAGS
+
+deviceSanityCheckCompiler()
diff --git a/mkspecs/devices/common/freebsd_device_pre.conf b/mkspecs/devices/common/freebsd_device_pre.conf
new file mode 100644
index 0000000000..97d70b5265
--- /dev/null
+++ b/mkspecs/devices/common/freebsd_device_pre.conf
@@ -0,0 +1,27 @@
+QT_QPA_DEFAULT_PLATFORM = bsdfb
+
+MAKEFILE_GENERATOR = UNIX
+CONFIG += incremental
+QMAKE_INCREMENTAL_STYLE = sublib
+
+include(../../freebsd-clang/qmake.conf)
+
+load(device_config)
+
+# modifications to g++-unix.conf
+QMAKE_CC = $${CROSS_COMPILE}cc
+QMAKE_CXX = $${CROSS_COMPILE}c++
+QMAKE_LINK = $${QMAKE_CXX}
+QMAKE_LINK_SHLIB = $${QMAKE_CXX}
+
+# modifications to linux.conf
+QMAKE_AR = $${CROSS_COMPILE}ar cqs
+QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
+QMAKE_NM = $${CROSS_COMPILE}nm -P
+QMAKE_STRIP = $${CROSS_COMPILE}strip
+
+# Do not set QMAKE_INCDIR to system include here
+# it messes up system include order. --sysroot is
+# sufficient. See link for details:
+# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213217
+QMAKE_LIBDIR = $$[QT_SYSROOT]/usr/lib
diff --git a/mkspecs/devices/freebsd-generic-clang/qmake.conf b/mkspecs/devices/freebsd-generic-clang/qmake.conf
new file mode 100644
index 0000000000..1c3ca9b1f7
--- /dev/null
+++ b/mkspecs/devices/freebsd-generic-clang/qmake.conf
@@ -0,0 +1,9 @@
+#
+# Generic qmake configuration for cross-compiling with clang
+#
+# A minimal configure line could look something like this:
+# ./configure -device freebsd-generic-clang -device-option CROSS_COMPILE=/usr/armv6-freebsd/usr/bin/
+
+include(../common/freebsd_device_pre.conf)
+include(../common/freebsd_device_post.conf)
+load(qt_config)
diff --git a/mkspecs/devices/freebsd-generic-clang/qplatformdefs.h b/mkspecs/devices/freebsd-generic-clang/qplatformdefs.h
new file mode 100644
index 0000000000..de53ea5e16
--- /dev/null
+++ b/mkspecs/devices/freebsd-generic-clang/qplatformdefs.h
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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 https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://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 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "../../common/bsd/qplatformdefs.h"
diff --git a/mkspecs/devices/freebsd-rasp-pi-clang/qmake.conf b/mkspecs/devices/freebsd-rasp-pi-clang/qmake.conf
new file mode 100644
index 0000000000..2105f08c78
--- /dev/null
+++ b/mkspecs/devices/freebsd-rasp-pi-clang/qmake.conf
@@ -0,0 +1,25 @@
+# qmake configuration for the Raspberry Pi and Raspberry Pi 2
+
+include(../common/freebsd_device_pre.conf)
+
+QT_QPA_DEFAULT_PLATFORM = eglfs
+# Preferred eglfs backend
+EGLFS_DEVICE_INTEGRATION = eglfs_brcm
+
+QMAKE_LIBDIR_OPENGL_ES2 = $$[QT_SYSROOT]/usr/local/lib
+QMAKE_LIBDIR_EGL = $$QMAKE_LIBDIR_OPENGL_ES2
+QMAKE_LIBDIR_OPENVG = $$QMAKE_LIBDIR_OPENGL_ES2
+
+QMAKE_INCDIR_EGL = $$[QT_SYSROOT]/usr/local/include \
+ $$[QT_SYSROOT]/usr/local/include/interface/vcos/pthreads \
+ $$[QT_SYSROOT]/usr/local/include/interface/vmcs_host/linux
+QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
+QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL}
+
+QMAKE_LIBS_EGL = -lEGL -lGLESv2
+QMAKE_LIBS_OPENGL_ES2 = $${QMAKE_LIBS_EGL}
+QMAKE_LIBS_OPENVG = -lEGL -lOpenVG -lGLESv2
+
+include(../common/freebsd_device_post.conf)
+
+load(qt_config)
diff --git a/mkspecs/devices/freebsd-rasp-pi-clang/qplatformdefs.h b/mkspecs/devices/freebsd-rasp-pi-clang/qplatformdefs.h
new file mode 100644
index 0000000000..3fd73d421a
--- /dev/null
+++ b/mkspecs/devices/freebsd-rasp-pi-clang/qplatformdefs.h
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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 https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://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 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "../freebsd-generic-clang/qplatformdefs.h"