From 72efb2e6f4af2fd909daaf9104f09fd1425acfb0 Mon Sep 17 00:00:00 2001 From: Oleksandr Tymoshenko Date: Tue, 4 Oct 2016 17:56:11 -0700 Subject: 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 --- mkspecs/devices/common/freebsd_device_post.conf | 5 +++ mkspecs/devices/common/freebsd_device_pre.conf | 27 +++++++++++++++ mkspecs/devices/freebsd-generic-clang/qmake.conf | 9 +++++ .../devices/freebsd-generic-clang/qplatformdefs.h | 40 ++++++++++++++++++++++ mkspecs/devices/freebsd-rasp-pi-clang/qmake.conf | 25 ++++++++++++++ .../devices/freebsd-rasp-pi-clang/qplatformdefs.h | 40 ++++++++++++++++++++++ 6 files changed, 146 insertions(+) create mode 100644 mkspecs/devices/common/freebsd_device_post.conf create mode 100644 mkspecs/devices/common/freebsd_device_pre.conf create mode 100644 mkspecs/devices/freebsd-generic-clang/qmake.conf create mode 100644 mkspecs/devices/freebsd-generic-clang/qplatformdefs.h create mode 100644 mkspecs/devices/freebsd-rasp-pi-clang/qmake.conf create mode 100644 mkspecs/devices/freebsd-rasp-pi-clang/qplatformdefs.h (limited to 'mkspecs') 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" -- cgit v1.2.3